Module: Sass::Plugin
Overview
This module handles the compilation of Sass files. It provides global options and checks whether CSS files need to be updated.
This module is used as the primary interface with Sass when it’s used as a plugin for various frameworks. Currently Rails and Merb are supported out of the box.
Instance Attribute Summary collapse
-
#checked_for_updates ⇒ Boolean
readonly
Whether or not Sass has ever checked if the stylesheets need to be updated (in this Ruby instance).
-
#options ⇒ Hash<Symbol, Object>
An options hash.
Instance Method Summary collapse
-
#engine_options(additional_options = {}) ⇒ Hash<Symbol, Object>
Non-destructively modifies #options so that default values are properly set.
-
#update_stylesheets ⇒ Object
Updates out-of-date stylesheets.
Instance Attribute Details
#checked_for_updates ⇒ Boolean (readonly)
Whether or not Sass has ever checked if the stylesheets need to be updated (in this Ruby instance).
26 27 28 |
# File 'lib/sass/plugin.rb', line 26 def checked_for_updates @checked_for_updates end |
#options ⇒ Hash<Symbol, Object>
An options hash. See the Sass options documentation.
32 33 34 |
# File 'lib/sass/plugin.rb', line 32 def @options end |
Instance Method Details
#engine_options(additional_options = {}) ⇒ Hash<Symbol, Object>
Non-destructively modifies #options so that default values are properly set.
46 47 48 49 50 |
# File 'lib/sass/plugin.rb', line 46 def ( = {}) opts = .dup.merge() opts[:load_paths] = load_paths(opts) opts end |
#update_stylesheets ⇒ Object
Updates out-of-date stylesheets.
Checks each Sass file in ‘:template_location` to see if it’s been modified more recently than the corresponding CSS file in SASS_REFERENCE ‘:css_location`}. If it has, it updates the CSS file.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/sass/plugin.rb', line 58 def update_stylesheets return if [:never_update] @checked_for_updates = true template_locations.zip(css_locations).each do |template_location, css_location| Dir.glob(File.join(template_location, "**", "*.sass")).each do |file| # Get the relative path to the file with no extension name = file.sub(template_location + "/", "")[0...-5] if !forbid_update?(name) && ([:always_update] || stylesheet_needs_update?(name, template_location, css_location)) update_stylesheet(name, template_location, css_location) end end end end |