class Sprockets::SassTemplate - sprockets-2.11.3 Documentation

# class Sprockets::SassTemplate

This custom Tilt handler replaces the one built into Tilt. The main difference is that it uses a custom importer that plays nice with sprocket's caching system.

See `SassImporter` for more infomation.

### Public Class Methods

engine_initialized?() click to toggle source

    # File lib/sprockets/sass_template.rb, line 12
    def self.engine_initialized?
      defined?(::Sass::Engine) && defined?(::Sass::Script::Functions) &&
        ::Sass::Script::Functions < Sprockets::SassFunctions
    end

### Public Instance Methods

evaluate(context, locals, &block) click to toggle source

    # File lib/sprockets/sass_template.rb, line 36
    def evaluate(context, locals, &block)
      # Use custom importer that knows about Sprockets Caching
      cache_store = SassCacheStore.new(context.environment)

      options = {
        :filename => eval_file,
        :line => line,
        :syntax => syntax,
        :cache_store => cache_store,
        :importer => SassImporter.new(context, context.pathname),
        :load_paths => context.environment.paths.map { |path| SassImporter.new(context, path) },
        :sprockets => {
          :context => context,
          :environment => context.environment
        }
      }

      ::Sass::Engine.new(data, options).render
    rescue ::Sass::SyntaxError => e
      # Annotates exception message with parse line number
      context.__LINE__ = e.sass_backtrace.first[:line]
      raise e
    end

initialize_engine() click to toggle source

    # File lib/sprockets/sass_template.rb, line 17
    def initialize_engine
      # Double check constant to avoid tilt warning
      unless defined? ::Sass
        require_template_library 'sass'
      end

      # Install custom functions. It'd be great if this didn't need to
      # be installed globally, but could be passed into Engine as an
      # option.
      ::Sass::Script::Functions.send :include, Sprockets::SassFunctions
    end

prepare() click to toggle source

    # File lib/sprockets/sass_template.rb, line 29
    def prepare
    end

syntax() click to toggle source

    # File lib/sprockets/sass_template.rb, line 32
    def syntax
      :sass
    end