@@ -42,18 +42,19 @@ class Compressor
4242 JST_END = "})();"
4343
4444 COMPRESSORS = {
45- :yui => YUI ::JavaScriptCompressor ,
46- :closure => Closure ::Compiler
45+ :yui => YUI ::JavaScriptCompressor ,
46+ :closure => Closure ::Compiler ,
47+ :uglifier => ::Uglifier
4748 }
4849
4950 DEFAULT_OPTIONS = {
50- :yui => { :munge => true } ,
51- :closure => { }
51+ :yui => { :munge => true } ,
52+ :closure => { } ,
53+ :uglifier => { }
5254 }
53-
54- # Creating a compressor initializes the internal YUI Compressor from
55- # the "yui-compressor" gem, or the internal Closure Compiler from the
56- # "closure-compiler" gem.
55+
56+ # The css comressor if always YUI Compressor. Js compression can be provided with
57+ # YUI Compressor, Google Closure Compiler or UglifyJS
5758 def initialize
5859 @css_compressor = YUI ::CssCompressor . new ( Jammit . css_compressor_options || { } )
5960 flavor = Jammit . javascript_compressor || Jammit ::DEFAULT_COMPRESSOR
@@ -69,7 +70,7 @@ def compress_js(paths)
6970 else
7071 js = concatenate ( paths - jst_paths ) + compile_jst ( jst_paths )
7172 end
72- Jammit . compress_assets ? @js_compressor . compress ( js ) : js
73+ Jammit . compress_assets ? compressed_js ( js ) : js
7374 end
7475
7576 # Concatenate and compress a list of CSS stylesheets. When compressing a
@@ -109,6 +110,11 @@ def compile_jst(paths)
109110
110111
111112 private
113+
114+ # Returns a compressed javascript source using appropriate method of js compressor
115+ def compressed_js ( js )
116+ @js_compressor . respond_to? ( :compress ) ? @js_compressor . compress ( js ) : @js_compressor . compile ( js )
117+ end
112118
113119 # Given a set of paths, find a common prefix path.
114120 def find_base_path ( paths )
0 commit comments