Skip to content

Commit 50a85d0

Browse files
committed
Merging in the soft dependency branch ... no more closure/uglifier gem deps.
1 parent 4c0c813 commit 50a85d0

4 files changed

Lines changed: 19 additions & 26 deletions

File tree

jammit.gemspec

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ Gem::Specification.new do |s|
2828
'--all'
2929

3030
s.add_dependency 'yui-compressor', ['>= 0.9.3']
31-
#s.add_dependency 'closure-compiler', ['>= 0.1.0']
32-
#s.add_dependency 'uglifier', ['>= 0.4.0']
3331

3432
s.files = Dir['lib/**/*', 'bin/*', 'rails/*', 'jammit.gemspec', 'LICENSE', 'README']
3533
end

lib/jammit.rb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module Jammit
2222

2323
DEFAULT_JST_NAMESPACE = "window.JST"
2424

25-
AVAILABLE_COMPRESSORS = [:yui, :closure, :uglifier]
25+
COMPRESSORS = [:yui, :closure, :uglifier]
2626

2727
DEFAULT_COMPRESSOR = :yui
2828

@@ -46,18 +46,18 @@ class OutputNotWritable < StandardError; end
4646
class DeprecationError < StandardError; end
4747

4848
class << self
49-
attr_reader :configuration, :template_function, :template_namespace,
50-
:embed_assets, :package_assets, :compress_assets, :gzip_assets,
51-
:package_path, :mhtml_enabled, :include_jst_script, :config_path,
52-
:javascript_compressor, :compressor_options, :css_compressor_options,
53-
:template_extension, :template_extension_matcher, :allow_debugging
54-
attr_accessor :loaded_compressors
49+
attr_reader :configuration, :template_function, :template_namespace,
50+
:embed_assets, :package_assets, :compress_assets, :gzip_assets,
51+
:package_path, :mhtml_enabled, :include_jst_script, :config_path,
52+
:javascript_compressor, :compressor_options, :css_compressor_options,
53+
:template_extension, :template_extension_matcher, :allow_debugging
54+
attr_accessor :compressors
5555
end
5656

5757
# The minimal required configuration.
58-
@configuration = {}
59-
@package_path = DEFAULT_PACKAGE_PATH
60-
@loaded_compressors = AVAILABLE_COMPRESSORS
58+
@configuration = {}
59+
@package_path = DEFAULT_PACKAGE_PATH
60+
@compressors = COMPRESSORS
6161

6262
# Load the complete asset configuration from the specified @config_path@.
6363
# If we're loading softly, don't let missing configuration error out.
@@ -136,7 +136,7 @@ def self.package!(options={})
136136
# Ensure that the JavaScript compressor is a valid choice.
137137
def self.set_javascript_compressor(value)
138138
value = value && value.to_sym
139-
@javascript_compressor = loaded_compressors.include?(value) ? value : DEFAULT_COMPRESSOR
139+
@javascript_compressor = compressors.include?(value) ? value : DEFAULT_COMPRESSOR
140140
end
141141

142142
# Turn asset packaging on or off, depending on configuration and environment.

lib/jammit/compressor.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,9 @@ class Compressor
4343

4444
COMPRESSORS = {
4545
:yui => YUI::JavaScriptCompressor,
46+
:closure => Jammit.compressors.include?(:closure) ? Closure::Compiler : nil,
47+
:uglifier => Jammit.compressors.include?(:uglifier) ? Jammit::Uglifier : nil
4648
}
47-
48-
COMPRESSORS[:closure] = Closure::Compiler if Jammit.loaded_compressors.include? :closure
49-
COMPRESSORS[:uglifier] = Jammit::Uglifier if Jammit.loaded_compressors.include? :uglifier
5049

5150
DEFAULT_OPTIONS = {
5251
:yui => {:munge => true},

lib/jammit/dependencies.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,28 @@
77
require 'pathname'
88
require 'fileutils'
99

10-
# Gem Dependencies:
11-
available_dependencies = []
12-
1310
# Include YUI as the default
1411
require 'yui/compressor'
1512

13+
# Try Closure.
1614
begin
1715
require 'closure-compiler'
18-
available_dependencies << :closure
1916
rescue LoadError
20-
Jammit.loaded_compressors.delete :closure
21-
puts "Closure is unavailable."
17+
Jammit.compressors.delete :closure
2218
end
19+
20+
# Try Uglifier.
2321
begin
2422
require 'uglifier'
25-
available_dependencies << :uglifier
2623
rescue LoadError
27-
Jammit.loaded_compressors.delete :uglifier
28-
puts "Uglifier is unavailable."
24+
Jammit.compressors.delete :uglifier
2925
end
3026

3127
# Load initial configuration before the rest of Jammit.
3228
Jammit.load_configuration(Jammit::DEFAULT_CONFIG_PATH, true) if defined?(Rails)
3329

3430
# Jammit Core:
35-
require 'jammit/uglifier' if Jammit.loaded_compressors.include?( :uglifier )
31+
require 'jammit/uglifier' if Jammit.compressors.include? :uglifier
3632
require 'jammit/compressor'
3733
require 'jammit/packager'
3834

0 commit comments

Comments
 (0)