haml--haml/lib/sass/plugin/merb.rb

58 lines
1.7 KiB
Ruby

unless defined?(Sass::MERB_LOADED)
Sass::MERB_LOADED = true
version = Merb::VERSION.split('.').map { |n| n.to_i }
if version[0] <= 0 && version[1] < 5
root = MERB_ROOT
env = MERB_ENV
else
root = Merb.root.to_s
env = Merb.environment
end
Sass::Plugin.options.merge!(:template_location => root + '/public/stylesheets/sass',
:css_location => root + '/public/stylesheets',
:cache_location => root + '/tmp/sass-cache',
:always_check => env != "production",
:full_exception => env != "production")
config = Merb::Plugins.config[:sass] || Merb::Plugins.config["sass"] || {}
if defined? config.symbolize_keys!
config.symbolize_keys!
end
Sass::Plugin.options.merge!(config)
if version[0] > 0 || version[1] >= 9
class Merb::Rack::Application
def call_with_sass(env)
if !Sass::Plugin.checked_for_updates ||
Sass::Plugin.options[:always_update] || Sass::Plugin.options[:always_check]
Sass::Plugin.update_stylesheets
end
call_without_sass(env)
end
alias_method :call_without_sass, :call
alias_method :call, :call_with_sass
end
else
class MerbHandler
def process_with_sass(request, response)
if !Sass::Plugin.checked_for_updates ||
Sass::Plugin.options[:always_update] || Sass::Plugin.options[:always_check]
Sass::Plugin.update_stylesheets
end
process_without_sass(request, response)
end
alias_method :process_without_sass, :process
alias_method :process, :process_with_sass
end
end
end