Module: Sass::Plugin::Configuration

Included in:
Compiler
Defined in:
/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb,
/home/nweiz/code/sass-site/.sass/lib/sass/plugin/merb.rb,
/home/nweiz/code/sass-site/.sass/lib/sass/plugin/rails.rb

Overview

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.

Note that this is not guaranteed to be thread-safe. For guaranteed thread safety, use a separate Sass::Plugin for each thread.

Instance Method Summary (collapse)

Instance Method Details

- add_template_location(template_location, css_location = options[:css_location])

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 :template_location option since the option can be in multiple formats.

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

Parameters:

  • template_location (String)

    The location where Sass/SCSS files will be.

  • css_location (String) (defaults to: options[:css_location])

    The location where compiled CSS files will go.



53
54
55
56
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 53

def add_template_location(template_location, css_location = options[:css_location])
  normalize_template_location!
  template_location_array << [template_location, css_location]
end

- default_options

Different default options in a rails environment.



12
13
14
15
16
17
18
19
20
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 12

def default_options
  @default_options ||= {
    :css_location       => './public/stylesheets',
    :always_update      => false,
    :always_check       => true,
    :full_exception     => true,
    :cache_location     => ".sass-cache"
  }.freeze
end

- ({Symbol => Object}) options

An options hash. See the Sass options documentation.

Returns:

  • ({Symbol => Object})


33
34
35
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 33

def options
  @options ||= default_options.dup
end

- (Boolean) remove_template_location(template_location, css_location = options[:css_location])

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 :template_location option since the option can be in multiple formats.

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

Parameters:

  • template_location (String)

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

  • css_location (String) (defaults to: options[:css_location])

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

Returns:

  • (Boolean)

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



80
81
82
83
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 80

def remove_template_location(template_location, css_location = options[:css_location])
  normalize_template_location!
  template_location_array.delete([template_location, css_location])
end

- reset!

Resets the options and clears all callbacks.



24
25
26
27
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 24

def reset!
  @options = nil
  clear_callbacks!
end

- (Array<(String, String)>) template_location_array

Returns the template locations configured for Sass as an array of [template_location, css_location] pairs. See the :template_location option for details.

Modifications to the returned array may not be persistent. Use #add_template_location and #remove_template_location instead.

Returns:

  • (Array<(String, String)>)

    An array of [template_location, css_location] pairs.



95
96
97
# File '/home/nweiz/code/sass-site/.sass/lib/sass/plugin/configuration.rb', line 95

def template_location_array
  convert_template_location(options[:template_location], options[:css_location])
end