Skip to content

Commit

Permalink
Merge pull request rails#5031 from carlosantoniodasilva/sprockets-com…
Browse files Browse the repository at this point in the history
…pressors-refactor

Sprockets compressors refactor
  • Loading branch information
jeremy committed Feb 13, 2012
2 parents 10cf66c + 6960e48 commit 11d1bdc
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 23 deletions.
42 changes: 22 additions & 20 deletions 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)
Expand All @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion actionpack/lib/sprockets/railtie.rb
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions actionpack/lib/sprockets/static_compiler.rb
Expand Up @@ -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
Expand Down

0 comments on commit 11d1bdc

Please sign in to comment.