module Bootstrap
def assets_path
def assets_path @assets_path ||= File.join gem_path, 'assets' end
def gem_path
def gem_path @gem_path ||= File.expand_path '..', File.dirname(__FILE__) end
def hanami?
def hanami? defined?(::Hanami) end
def javascripts_path
def javascripts_path File.join assets_path, 'javascripts' end
def load!
def load! if rails? register_rails_engine elsif hanami? register_hanami elsif sprockets? register_sprockets elsif defined?(::Sass) && ::Sass.respond_to?(:load_paths) # The deprecated `sass` gem: ::Sass.load_paths << stylesheets_path end if defined?(::Sass::Script::Value::Number) # Set precision to 6 as per: # https://github.com/twbs/bootstrap/blob/da717b03e6e72d7a61c007acb9223b9626ae5ee5/package.json#L28 ::Sass::Script::Value::Number.precision = [6, ::Sass::Script::Value::Number.precision].max end end
def rails?
def rails? defined?(::Rails) end
def register_hanami
def register_hanami Hanami::Assets.sources << assets_path end
def register_rails_engine
def register_rails_engine require 'bootstrap/engine' end
def register_sprockets
def register_sprockets Sprockets.append_path(stylesheets_path) Sprockets.append_path(javascripts_path) end
def sprockets?
def sprockets? defined?(::Sprockets) end
def stylesheets_path
def stylesheets_path File.join assets_path, 'stylesheets' end