Version 1
[yaffs-website] / vendor / twbs / bootstrap-sass / lib / bootstrap-sass.rb
diff --git a/vendor/twbs/bootstrap-sass/lib/bootstrap-sass.rb b/vendor/twbs/bootstrap-sass/lib/bootstrap-sass.rb
new file mode 100644 (file)
index 0000000..bde132d
--- /dev/null
@@ -0,0 +1,94 @@
+require 'bootstrap-sass/version'
+module Bootstrap
+  class << self
+    # Inspired by Kaminari
+    def load!
+      register_compass_extension if compass?
+
+      if rails?
+        register_rails_engine
+      elsif lotus?
+        register_lotus
+      elsif sprockets?
+        register_sprockets
+      end
+
+      configure_sass
+    end
+
+    # Paths
+    def gem_path
+      @gem_path ||= File.expand_path '..', File.dirname(__FILE__)
+    end
+
+    def stylesheets_path
+      File.join assets_path, 'stylesheets'
+    end
+
+    def fonts_path
+      File.join assets_path, 'fonts'
+    end
+
+    def javascripts_path
+      File.join assets_path, 'javascripts'
+    end
+
+    def assets_path
+      @assets_path ||= File.join gem_path, 'assets'
+    end
+
+    # Environment detection helpers
+    def sprockets?
+      defined?(::Sprockets)
+    end
+
+    def compass?
+      defined?(::Compass::Frameworks)
+    end
+
+    def rails?
+      defined?(::Rails)
+    end
+
+    def lotus?
+      defined?(::Lotus)
+    end
+
+    private
+
+    def configure_sass
+      require 'sass'
+
+      ::Sass.load_paths << stylesheets_path
+
+      # bootstrap requires minimum precision of 8, see https://github.com/twbs/bootstrap-sass/issues/409
+      ::Sass::Script::Number.precision = [8, ::Sass::Script::Number.precision].max
+    end
+
+    def register_compass_extension
+      ::Compass::Frameworks.register(
+          'bootstrap',
+          :version               => Bootstrap::VERSION,
+          :path                  => gem_path,
+          :stylesheets_directory => stylesheets_path,
+          :templates_directory   => File.join(gem_path, 'templates')
+      )
+    end
+
+    def register_rails_engine
+      require 'bootstrap-sass/engine'
+    end
+
+    def register_lotus
+      Lotus::Assets.sources << assets_path
+    end
+
+    def register_sprockets
+      Sprockets.append_path(stylesheets_path)
+      Sprockets.append_path(fonts_path)
+      Sprockets.append_path(javascripts_path)
+    end
+  end
+end
+
+Bootstrap.load!