Sha256: 00be0501b7d175411693f29226b4fe61de8235398fe0a12dfe94a6acce0c1f8b

Contents?: true

Size: 1.36 KB

Versions: 5

Compression:

Stored size: 1.36 KB

Contents

require "material-sass/version"

module Material
  module Sass
    #thanks to bootstrap-rubygem
    class << self
      # Inspired by Kaminari
      def load!
        if rails?
          register_rails_engine
        elsif hanami?
          register_hanami
        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 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 rails?
        defined?(::Rails)
      end

      def hanami?
        defined?(::Hanami)
      end

      private

      def configure_sass
        require 'sass'

        ::Sass.load_paths << stylesheets_path
      end

      def register_rails_engine
        require 'material-sass/engine'
      end

      def register_sprockets
        Sprockets.append_path(stylesheets_path)
        Sprockets.append_path(javascripts_path)
      end

      def register_hanami
        Hanami::Assets.sources << assets_path
      end
    end
  end
end

Material::Sass.load!

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
material-sass-4.1.1 lib/material-sass.rb
material-sass-4.1.0 lib/material-sass.rb
material-sass-4.0.0 lib/material-sass.rb
material-sass-4.0.0.beta3 lib/material-sass.rb
material-sass-4.0.0.beta2 lib/material-sass.rb