module Sass::Plugin::Configuration - sass-3.4.14 Documentation

# module Sass::Plugin::Configuration

We keep configuration in its own self-contained file so that we can load it independently in Rails 3, where the full plugin stuff is lazy-loaded.

### Public Instance Methods

add_template_location(template_location, css_location = options[:css_location]) click to toggle source

Adds a new template-location/css-location mapping. This means that Sass/SCSS files in `template_location` will be compiled to CSS files in `css_location`.

This is preferred over manually manipulating the {file:SASS_REFERENCE.md#template_location-option `:template_location` option} since the option can be in multiple formats.

Note that this method will change `options` to be in the Array format. This means that even if `options` had previously been a Hash or a String, it will now be an Array.

@param template_location [String] The location where Sass/SCSS files will be. @param css_location [String] The location where compiled CSS files will go.

    # File lib/sass/plugin/configuration.rb, line 51
    def add_template_location(template_location, css_location = options[:css_location])
      normalize_template_location!
      template_location_array << [template_location, css_location]
    end

default_options() click to toggle source

Returns the default options for a {Sass::Plugin::Compiler}.

@return [{Symbol => Object}]

    # File lib/sass/plugin/configuration.rb, line 10
    def default_options
      @default_options ||= {
        :css_location       => './public/stylesheets',
        :always_update      => false,
        :always_check       => true,
        :full_exception     => true,
        :cache_location     => ".sass-cache"
      }.freeze
    end

options() click to toggle source

An options hash. See {file:SASS_REFERENCE.md#sass_options the Sass options documentation}.

@return [{Symbol => Object}]

    # File lib/sass/plugin/configuration.rb, line 31
    def options
      @options ||= default_options.dup
    end

remove_template_location(template_location, css_location = options[:css_location]) click to toggle source

Removes a template-location/css-location mapping. This means that Sass/SCSS files in `template_location` will no longer be compiled to CSS files in `css_location`.

This is preferred over manually manipulating the {file:SASS_REFERENCE.md#template_location-option `:template_location` option} since the option can be in multiple formats.

Note that this method will change `options` to be in the Array format. This means that even if `options` had previously been a Hash or a String, it will now be an Array.

@param template_location [String]

    The location where Sass/SCSS files were,
    which is now going to be ignored.

@param css_location [String]

    The location where compiled CSS files went, but will no longer go.

@return [Boolean]

    Non-`nil` if the given mapping already existed and was removed,
    or `nil` if nothing was changed.

    # File lib/sass/plugin/configuration.rb, line 78
    def remove_template_location(template_location, css_location = options[:css_location])
      normalize_template_location!
      template_location_array.delete([template_location, css_location])
    end

reset!() click to toggle source

Resets the options and {Sass::Callbacks::InstanceMethods#clear_callbacks! clears all callbacks}.

    # File lib/sass/plugin/configuration.rb, line 22
    def reset!
      @options = nil
      clear_callbacks!
    end

template_location_array() click to toggle source

Returns the template locations configured for Sass as an array of `[template_location, css_location]` pairs. See the {file:SASS_REFERENCE.md#template_location-option `:template_location` option} for details.

@return [Array<(String, String)>]

    An array of `[template_location, css_location]` pairs.

    # File lib/sass/plugin/configuration.rb, line 90
    def template_location_array
      old_template_location = options[:template_location]
      normalize_template_location!
      options[:template_location]
    ensure
      options[:template_location] = old_template_location
    end

### Private Instance Methods

normalize_template_location!() click to toggle source

    # File lib/sass/plugin/configuration.rb, line 100
    def normalize_template_location!
      return if options[:template_location].is_a?(Array)
      options[:template_location] =
        case options[:template_location]
        when nil
          if options[:css_location]
            [[File.join(options[:css_location], 'sass'), options[:css_location]]]
          else
            []
          end
        when String
          [[options[:template_location], options[:css_location]]]
        else
          options[:template_location].to_a
        end
    end