aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2012-02-13 15:32:47 -0800
committerJeremy Kemper <jeremy@bitsweat.net>2012-02-13 15:32:47 -0800
commit11d1bdc09e91f1d77c36b7afeef912de0b94f331 (patch)
treea9a9801ad261502379f1d4398766f56b18226bcf /actionpack
parent10cf66c034bed5bcd5b8c4cf372cf38e4730a483 (diff)
parent6960e481cb87964bd450ec3fbaa1087f44c3b860 (diff)
downloadrails-11d1bdc09e91f1d77c36b7afeef912de0b94f331.tar.gz
rails-11d1bdc09e91f1d77c36b7afeef912de0b94f331.tar.bz2
rails-11d1bdc09e91f1d77c36b7afeef912de0b94f331.zip
Merge pull request #5031 from carlosantoniodasilva/sprockets-compressors-refactor
Sprockets compressors refactor
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/sprockets/compressors.rb42
-rw-r--r--actionpack/lib/sprockets/railtie.rb2
-rw-r--r--actionpack/lib/sprockets/static_compiler.rb4
3 files changed, 25 insertions, 23 deletions
diff --git a/actionpack/lib/sprockets/compressors.rb b/actionpack/lib/sprockets/compressors.rb
index cb3e13314b..8b728d6570 100644
--- a/actionpack/lib/sprockets/compressors.rb
+++ b/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 @@ module Sprockets
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.
diff --git a/actionpack/lib/sprockets/railtie.rb b/actionpack/lib/sprockets/railtie.rb
index 44ddab0950..2bc482a39d 100644
--- a/actionpack/lib/sprockets/railtie.rb
+++ b/actionpack/lib/sprockets/railtie.rb
@@ -24,7 +24,7 @@ module Sprockets
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
diff --git a/actionpack/lib/sprockets/static_compiler.rb b/actionpack/lib/sprockets/static_compiler.rb
index 719df0bd51..9bbb464474 100644
--- a/actionpack/lib/sprockets/static_compiler.rb
+++ b/actionpack/lib/sprockets/static_compiler.rb
@@ -8,8 +8,8 @@ module Sprockets
@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