diff options
author | Xavier Noria <fxn@hashref.com> | 2011-04-23 01:16:21 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2011-04-23 01:16:21 +0200 |
commit | 384dbfd1408721ded071a587b0dc9ee40203607e (patch) | |
tree | 770854b984691dea8187ca0a998a28e93a008093 /actionpack/lib/sprockets/railtie.rb | |
parent | 900470cf3cd346ad1b17cf6902f3f98e6dae7709 (diff) | |
parent | af1b48926f49226c934995c322ee017239158cf3 (diff) | |
download | rails-384dbfd1408721ded071a587b0dc9ee40203607e.tar.gz rails-384dbfd1408721ded071a587b0dc9ee40203607e.tar.bz2 rails-384dbfd1408721ded071a587b0dc9ee40203607e.zip |
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'actionpack/lib/sprockets/railtie.rb')
-rw-r--r-- | actionpack/lib/sprockets/railtie.rb | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/actionpack/lib/sprockets/railtie.rb b/actionpack/lib/sprockets/railtie.rb index 2f7f95c44d..9c10decd60 100644 --- a/actionpack/lib/sprockets/railtie.rb +++ b/actionpack/lib/sprockets/railtie.rb @@ -33,9 +33,10 @@ module Sprockets app.assets = asset_environment(app) - # FIXME: Temp hack for extending Sprockets::Context so ActiveSupport.on_load(:action_view) do - ::Sprockets::Context.send :include, ::ActionView::Helpers::SprocketsHelper + app.assets.context.instance_eval do + include ::ActionView::Helpers::SprocketsHelper + end end app.routes.append do @@ -56,7 +57,44 @@ module Sprockets env.static_root = File.join(app.root.join("public"), assets.prefix) env.paths.concat assets.paths env.logger = Rails.logger + env.js_compressor = expand_js_compressor(assets.js_compressor) + env.css_compressor = expand_css_compressor(assets.css_compressor) env end + + def expand_js_compressor(sym) + case sym + when :closure + require 'closure-compiler' + Closure::Compiler.new + when :uglifier + require 'uglifier' + Uglifier.new + when :yui + require 'yui/compressor' + YUI::JavaScriptCompressor.new + else + sym + end + end + + def expand_css_compressor(sym) + case sym + when :scss + require 'sass' + compressor = Object.new + def compressor.compress(source) + Sass::Engine.new(source, + :syntax => :scss, :style => :compressed + ).render + end + compressor + when :yui + require 'yui/compressor' + YUI::JavaScriptCompressor.new(:munge => true) + else + sym + end + end end -end
\ No newline at end of file +end |