Class | Sass::Plugin::Rack |
In: |
lib/sass/plugin/rack.rb
|
Parent: | Object |
Rack middleware for compiling Sass code.
## Activate
require 'sass/plugin/rack' use Sass::Plugin::Rack
## Customize
Sass::Plugin.options.merge( :cache_location => './tmp/sass-cache', :never_update => environment != :production, :full_exception => environment != :production)
{file:SASS_REFERENCE.md#options See the Reference for more options}.
## Use
Put your Sass files in `public/stylesheets/sass`. Your CSS will be generated in `public/stylesheets`, and regenerated every request if necessary. The locations and frequency {file:SASS_REFERENCE.md#options can be customized}. That‘s all there is to it!
Disable the native Rails or Merb plugins, if they‘re enabled. This is automatically done once the Rack plugin is activated. This is done so that the stylesheets aren‘t checked twice for each request.
# File lib/sass/plugin/rack.rb, line 50 50: def self.disable_native_plugin! 51: if defined?(Merb::Rack) && defined?(Merb::Rack::Application) && 52: Haml::Util.has?(:instance_method, Merb::Rack::Application, :call_without_sass) 53: Merb::Rack::Application.instance_eval {alias_method :call, :call_without_sass} 54: end 55: 56: if defined?(ActionDispatch::Callbacks) && defined?(ActionDispatch::Callbacks.to_prepare) 57: ActionDispatch::Callbacks.skip_callback(:prepare, :__sass_process) 58: elsif defined?(ActionController::Base) && 59: Haml::Util.has?(:instance_method, ActionController::Base, :sass_old_process) 60: ActionController::Base.instance_eval {alias_method :process, :sass_old_process} 61: end 62: end
Process a request, checking the Sass stylesheets for changes and updating them if necessary.
@param env The Rack request environment @return [(to_i, {String => String}, Object)] The Rack response
# File lib/sass/plugin/rack.rb, line 42 42: def call(env) 43: Sass::Plugin.check_for_updates 44: @app.call(env) 45: end