Skip to content
Browse files

Merge pull request #5031 from carlosantoniodasilva/sprockets-compress…

…ors-refactor

Sprockets compressors refactor
  • Loading branch information...
2 parents 10cf66c + 6960e48 commit 11d1bdc09e91f1d77c36b7afeef912de0b94f331 @jeremy jeremy committed Feb 13, 2012
View
42 actionpack/lib/sprockets/compressors.rb
@@ -1,38 +1,28 @@
module Sprockets
module Compressors
+ extend self
+
@@css_compressors = {}
@@js_compressors = {}
@@default_css_compressor = nil
@@default_js_compressor = nil
- def self.register_css_compressor(name, klass, options = {})
+ def register_css_compressor(name, klass, options = {})
@@default_css_compressor = name.to_sym if options[:default] || @@default_css_compressor.nil?
- @@css_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
+ @@css_compressors[name.to_sym] = { :klass => klass.to_s, :require => options[:require] }
end
- def self.register_js_compressor(name, klass, options = {})
+ def register_js_compressor(name, klass, options = {})
@@default_js_compressor = name.to_sym if options[:default] || @@default_js_compressor.nil?
- @@js_compressors[name.to_sym] = {:klass => klass.to_s, :require => options[:require]}
+ @@js_compressors[name.to_sym] = { :klass => klass.to_s, :require => options[:require] }
end
- def self.registered_css_compressor(name)
- if name.respond_to?(:to_sym)
- compressor = @@css_compressors[name.to_sym] || @@css_compressors[@@default_css_compressor]
- require compressor[:require] if compressor[:require]
- compressor[:klass].constantize.new
- else
- name
- end
+ def registered_css_compressor(name)
+ find_registered_compressor name, @@css_compressors, @@default_css_compressor
end
- def self.registered_js_compressor(name)
- if name.respond_to?(:to_sym)
- compressor = @@js_compressors[name.to_sym] || @@js_compressors[@@default_js_compressor]
- require compressor[:require] if compressor[:require]
- compressor[:klass].constantize.new
- else
- name
- end
+ def registered_js_compressor(name)
+ find_registered_compressor name, @@js_compressors, @@default_js_compressor
end
# The default compressors must be registered in default plugins (ex. Sass-Rails)
@@ -43,6 +33,18 @@ def self.registered_js_compressor(name)
register_css_compressor(:yui, 'YUI::CssCompressor', :require => 'yui/compressor')
register_js_compressor(:closure, 'Closure::Compiler', :require => 'closure-compiler')
register_js_compressor(:yui, 'YUI::JavaScriptCompressor', :require => 'yui/compressor')
+
+ private
+
+ def find_registered_compressor(name, compressors_hash, default_compressor_name)
+ if name.respond_to?(:to_sym)
+ compressor = compressors_hash[name.to_sym] || compressors_hash[default_compressor_name]
+ require compressor[:require] if compressor[:require]
+ compressor[:klass].constantize.new
+ else
+ name
+ end
+ end
end
# An asset compressor which does nothing.
View
2 actionpack/lib/sprockets/railtie.rb
@@ -24,7 +24,7 @@ class Railtie < ::Rails::Railtie
env.version = ::Rails.env + "-#{config.assets.version}"
if config.assets.logger != false
- env.logger = config.assets.logger || ::Rails.logger
+ env.logger = config.assets.logger || ::Rails.logger
end
if config.assets.cache_store != false
View
4 actionpack/lib/sprockets/static_compiler.rb
@@ -8,8 +8,8 @@ def initialize(env, target, paths, options = {})
@env = env
@target = target
@paths = paths
- @digest = options.key?(:digest) ? options.delete(:digest) : true
- @manifest = options.key?(:manifest) ? options.delete(:manifest) : true
+ @digest = options.fetch(:digest, true)
+ @manifest = options.fetch(:manifest, true)
@manifest_path = options.delete(:manifest_path) || target
@zip_files = options.delete(:zip_files) || /\.(?:css|html|js|svg|txt|xml)$/
end

0 comments on commit 11d1bdc

Please sign in to comment.
Something went wrong with that request. Please try again.