Module: Sass::Plugin
- Extended by:
- Plugin
- Included in:
- Plugin
- Defined in:
- .ruby-sass/lib/sass/plugin.rb,
.ruby-sass/lib/sass/plugin/compiler.rb,
.ruby-sass/lib/sass/plugin/configuration.rb,
.ruby-sass/lib/sass/plugin/rack.rb,
.ruby-sass/lib/sass/plugin/staleness_checker.rb
Overview
This module provides a single interface to the compilation of Sass/SCSS files for an application. 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. All Rack-enabled frameworks are supported out of the box. The plugin is automatically activated for Rails and Merb. Other frameworks must enable it explicitly; see Rack.
This module has a large set of callbacks available to allow users to run code (such as logging) when certain things happen. All callback methods are of the form `on_#name`, and they all take a block that's called when the given action occurs.
Note that this class proxies almost all methods to its Compiler instance. See #compiler.
Defined Under Namespace
Modules: Configuration Classes: Compiler, Rack, StalenessChecker
Instance Attribute Summary (collapse)
-
#checked_for_updates ⇒ Boolean
Whether or not Sass has *ever* checked if the stylesheets need to be updated (in this Ruby instance).
Instance Method Summary (collapse)
-
#check_for_updates ⇒ Object
Same as #update_stylesheets, but respects #checked_for_updates and the `:always_update` and `:always_check` options.
-
#compiler ⇒ Sass::Plugin::Compiler
Returns the singleton compiler instance.
-
#force_update_stylesheets(individual_files = []) ⇒ Object
Updates all stylesheets, even those that aren't out-of-date.
-
#method_missing(method, *args, &block) ⇒ Object
All other method invocations are proxied to the #compiler.
-
#options ⇒ Object
There's a small speedup by not using method missing for frequently delegated methods.
-
#respond_to?(method) ⇒ Boolean
For parity with method_missing.
-
#update_stylesheets(individual_files = []) ⇒ Object
Updates out-of-date stylesheets.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
All other method invocations are proxied to the #compiler.
107 108 109 110 111 112 113 |
# File '.ruby-sass/lib/sass/plugin.rb', line 107 def method_missing(method, *args, &block) if compiler.respond_to?(method) compiler.send(method, *args, &block) else super end end |
Instance Attribute Details
#checked_for_updates ⇒ Boolean
Whether or not Sass has *ever* checked if the stylesheets need to be updated (in this Ruby instance).
44 45 46 |
# File '.ruby-sass/lib/sass/plugin.rb', line 44 def checked_for_updates @checked_for_updates end |
Instance Method Details
#check_for_updates ⇒ Object
Same as #update_stylesheets, but respects #checked_for_updates and the `:always_update` and `:always_check` options.
51 52 53 54 55 |
# File '.ruby-sass/lib/sass/plugin.rb', line 51 def check_for_updates return unless !Sass::Plugin.checked_for_updates || Sass::Plugin.[:always_update] || Sass::Plugin.[:always_check] update_stylesheets end |
#compiler ⇒ Sass::Plugin::Compiler
Returns the singleton compiler instance. This compiler has been pre-configured according to the plugin configuration.
62 63 64 |
# File '.ruby-sass/lib/sass/plugin.rb', line 62 def compiler @compiler ||= Compiler.new end |
#force_update_stylesheets(individual_files = []) ⇒ Object
Updates all stylesheets, even those that aren't out-of-date. Ignores the cache.
95 96 97 98 99 100 101 |
# File '.ruby-sass/lib/sass/plugin.rb', line 95 def force_update_stylesheets(individual_files = []) Compiler.new( .dup.merge( :never_update => false, :always_update => true, :cache => false)).update_stylesheets(individual_files) end |
#options ⇒ Object
There's a small speedup by not using method missing for frequently delegated methods.
121 122 123 |
# File '.ruby-sass/lib/sass/plugin.rb', line 121 def compiler. end |
#respond_to?(method) ⇒ Boolean
For parity with method_missing
116 117 118 |
# File '.ruby-sass/lib/sass/plugin.rb', line 116 def respond_to?(method) super || compiler.respond_to?(method) end |
#update_stylesheets(individual_files = []) ⇒ Object
Updates out-of-date stylesheets.
Checks each Sass/SCSS file in `:template_location` to see if it's been modified more recently than the corresponding CSS file in `:css_location`. If it has, it updates the CSS file.
80 81 82 83 |
# File '.ruby-sass/lib/sass/plugin.rb', line 80 def update_stylesheets(individual_files = []) return if [:never_update] compiler.update_stylesheets(individual_files) end |