juicer 1.0.13 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. data/GPATH +0 -0
  2. data/GRTAGS +0 -0
  3. data/GSYMS +0 -0
  4. data/GTAGS +0 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +33 -0
  7. data/History.txt +3 -0
  8. data/Rakefile +96 -0
  9. data/VERSION +1 -1
  10. data/lib/juicer.rb +1 -1
  11. data/lib/juicer/asset/path.rb +10 -10
  12. data/lib/juicer/asset/path_resolver.rb +2 -2
  13. data/lib/juicer/binary.rb +1 -1
  14. data/lib/juicer/cache_buster.rb +1 -1
  15. data/lib/juicer/command/merge.rb +10 -8
  16. data/lib/juicer/datafy/datafy.rb +2 -2
  17. data/lib/juicer/dependency_resolver/css_dependency_resolver.rb +29 -29
  18. data/lib/juicer/dependency_resolver/javascript_dependency_resolver.rb +23 -23
  19. data/lib/juicer/image_embed.rb +24 -18
  20. data/lib/juicer/install/closure_compiler_installer.rb +1 -1
  21. data/lib/juicer/install/rhino_installer.rb +1 -1
  22. data/lib/juicer/install/yui_compressor_installer.rb +1 -1
  23. data/lib/juicer/merger/javascript_merger.rb +29 -29
  24. data/lib/juicer/merger/stylesheet_merger.rb +111 -111
  25. data/lib/juicer/minifyer/java_base.rb +8 -1
  26. data/test/bin/jslint-1.0.js +523 -0
  27. data/test/bin/jslint.js +523 -0
  28. data/test/bin/rhino1_7R1.zip +0 -0
  29. data/test/bin/rhino1_7R2-RC1.jar +0 -0
  30. data/test/bin/rhino1_7R2-RC1.zip +0 -0
  31. data/test/bin/rhino1_7R3.jar +0 -0
  32. data/test/bin/rhino1_7R3.zip +0 -0
  33. data/test/bin/yuicompressor +0 -0
  34. data/test/bin/yuicompressor-2.3.5.zip +0 -0
  35. data/test/bin/yuicompressor-2.4.2.jar +0 -0
  36. data/test/bin/yuicompressor-2.4.2.zip +0 -0
  37. data/test/data/Changelog.txt +10 -0
  38. data/test/data/a.css +3 -0
  39. data/test/data/a.js +5 -0
  40. data/test/data/a1.css +5 -0
  41. data/test/data/b.css +1 -0
  42. data/test/data/b.js +5 -0
  43. data/test/data/b1.css +5 -0
  44. data/test/data/b2.css +5 -0
  45. data/test/data/c1.css +3 -0
  46. data/test/data/css/2.gif +1 -0
  47. data/test/data/css/test.css +15 -0
  48. data/test/data/css/test2.css +1 -0
  49. data/test/data/css/test3.css +12 -0
  50. data/test/data/d1.css +3 -0
  51. data/test/data/images/1.png +1 -0
  52. data/test/data/my_app.js +2 -0
  53. data/test/data/not-ok.js +2 -0
  54. data/test/data/ok.js +3 -0
  55. data/test/data/path_test.css +5 -0
  56. data/test/data/path_test2.css +14 -0
  57. data/test/data/pkg/module/moda.js +2 -0
  58. data/test/data/pkg/module/modb.js +3 -0
  59. data/test/data/pkg/pkg.js +1 -0
  60. data/test/fixtures/rhino-download.html +42 -0
  61. data/test/fixtures/yui-download.html +375 -0
  62. data/test/test_helper.rb +10 -7
  63. data/test/unit/juicer/cache_buster_test.rb +1 -1
  64. data/test/unit/juicer/command/install_test.rb +2 -2
  65. data/test/unit/juicer/command/merge_test.rb +3 -3
  66. data/test/unit/juicer/command/verify_test.rb +2 -2
  67. data/test/unit/juicer/css_cache_buster_test.rb +2 -2
  68. data/test/unit/juicer/datafy_test.rb +1 -1
  69. data/test/unit/juicer/image_embed_test.rb +39 -6
  70. data/test/unit/juicer/jslint_test.rb +3 -3
  71. data/test/unit/juicer/merger/stylesheet_merger_test.rb +1 -1
  72. data/test/unit/juicer/minifyer/closure_compressor_test.rb +4 -4
  73. data/test/unit/juicer/minifyer/yui_compressor_test.rb +21 -4
  74. data/test/unit/juicer_test.rb +1 -1
  75. metadata +180 -154
@@ -1,5 +1,14 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+
4
+ begin
5
+ require 'turn'
6
+ rescue LoadError => err
7
+ puts "Protip: Install turn gem for better test reports. #{err.message}"
8
+ end
9
+
10
+ Bundler.setup
1
11
 
2
- require "rubygems"
3
12
  require 'fileutils'
4
13
  require 'test/unit'
5
14
  require 'shoulda'
@@ -7,12 +16,6 @@ require 'mocha'
7
16
  require 'open-uri'
8
17
  require 'juicer'
9
18
 
10
- begin
11
- require 'turn'
12
- rescue LoadError => err
13
- puts "Protip: Install turn gem for better test reports. #{err.message}"
14
- end
15
-
16
19
  if RUBY_VERSION < "1.9"
17
20
  require 'redgreen' if ENV['TM_DIRECTORY'].nil?
18
21
  end
@@ -36,7 +36,7 @@ class CacheBusterTest < Test::Unit::TestCase
36
36
  should "remove cache buster query parameters with custom name" do
37
37
  assert_equal @filename, Juicer::CacheBuster.clean("#@filename?cb=1234567890", :cb)
38
38
  end
39
-
39
+
40
40
  should "remove hard cache buster" do
41
41
  assert_equal @filename, Juicer::CacheBuster.clean(@filename.sub(/(\.txt)/, '-jcb1234567890\1'))
42
42
  end
@@ -31,7 +31,7 @@ class TestInstallCommand < Test::Unit::TestCase
31
31
 
32
32
  @command.instance_eval { @path = path(".juicer") }
33
33
  @command.execute("jslint")
34
-
34
+
35
35
  assert installer.installed?
36
36
  end
37
37
 
@@ -51,7 +51,7 @@ class TestInstallCommand < Test::Unit::TestCase
51
51
  @command.instance_eval { @path = path(".juicer") }
52
52
  @command.instance_eval { @version = "0.9" }
53
53
  @command.execute("jslint")
54
-
54
+
55
55
  assert installer.installed?("0.9")
56
56
  end
57
57
  end
@@ -131,7 +131,7 @@ class TestMergeCommand < Test::Unit::TestCase
131
131
  begin
132
132
  @merge.instance_eval { @output = path("a.min.css") }
133
133
  assert @merge.execute(path("a1.css"))
134
- assert_match "h2{font-size:10px;}html{background:red;}h1{font-size:12px;}body{width:800px;}", IO.read(path("a.min.css"))
134
+ assert_match "h2{font-size:10px}html{background:red}h1{font-size:12px}body{width:800px}", IO.read(path("a.min.css"))
135
135
  rescue Test::Unit::AssertionFailedError => err
136
136
  raise err
137
137
  rescue Exception => err
@@ -149,14 +149,14 @@ class TestMergeCommand < Test::Unit::TestCase
149
149
 
150
150
  should "ignore jslint problems" do
151
151
  @merge.instance_eval { @ignore = true }
152
-
152
+
153
153
  assert_nothing_raised do
154
154
  @merge.execute(path("not-ok.js"))
155
155
  assert_match(/Problems were detected during verification/, @io.string)
156
156
  assert_match(/Ignoring detected problems/, @io.string)
157
157
  end
158
158
  end
159
-
159
+
160
160
  should_eventually "warn about duplicated image urls for embedding"
161
161
  end
162
162
  end
@@ -38,9 +38,9 @@ class TestVerifyCommand < Test::Unit::TestCase
38
38
  Juicer::JsLint.any_instance.expects(:check).with(files[0]).returns(Juicer::JsLint::Report.new)
39
39
  Juicer::JsLint.any_instance.expects(:check).with(files[1]).returns(Juicer::JsLint::Report.new(["Oops"]))
40
40
  Juicer::JsLint.any_instance.expects(:check).with(files[2]).returns(Juicer::JsLint::Report.new)
41
-
41
+
42
42
  @command.execute(files)
43
-
43
+
44
44
  assert_match(/OK!/, @io.string)
45
45
  assert_match(/Problems detected/, @io.string)
46
46
  end
@@ -95,7 +95,7 @@ class TestCssCacheBuster < Test::Unit::TestCase
95
95
  buster.urls(output).each { |asset| assert_match /\?\d+$/, asset.path }
96
96
  end
97
97
  end
98
-
98
+
99
99
  context "hard cache busters" do
100
100
  should "should alter file name" do
101
101
  File.open(path("a2.css"), "w") { |f| f.puts "" }
@@ -115,7 +115,7 @@ class TestCssCacheBuster < Test::Unit::TestCase
115
115
  buster = Juicer::CssCacheBuster.new :document_root => path("")
116
116
 
117
117
  assert_nothing_raised do
118
- buster.save file
118
+ buster.save file
119
119
  end
120
120
  end
121
121
  end
@@ -34,4 +34,4 @@ class TC_Datafy < Test::Unit::TestCase
34
34
  LONG_TEXT_PLAIN_URI = "data:#{TEXT_PLAIN},#{LONG_URLENCODED}"
35
35
 
36
36
 
37
- end
37
+ end
@@ -80,11 +80,11 @@ class TestImageEmbed < Test::Unit::TestCase
80
80
  @files = [{ :path => "#{@document_root}/images/custom-file.png", :filename => '/images/custom-file.png', :content => "hello png!" }]
81
81
  create_files(@files)
82
82
  end
83
-
83
+
84
84
  should "embed urls with embedder" do
85
85
  stylesheets = [{ :path => "#{@document_root}/stylesheets/test_absolute_path.css", :content => "body: { background: url(#{@files.first[:filename]}?embed=true); }" }]
86
86
  create_files(stylesheets)
87
-
87
+
88
88
  @another_embedder.save stylesheets.first[:path]
89
89
  css_contents = File.read(stylesheets.first[:path])
90
90
 
@@ -95,11 +95,11 @@ class TestImageEmbed < Test::Unit::TestCase
95
95
  # make sure the encoded data_uri is present in the stylesheet
96
96
  assert css_contents.include?(data_uri)
97
97
  end
98
-
98
+
99
99
  should "not embed urls with embedder" do
100
100
  stylesheets = [{ :path => "#{@document_root}/stylesheets/test_absolute_path.css", :content => "body: { background: url(#{@files.first[:filename]}?embed=false); }" }]
101
101
  create_files(stylesheets)
102
-
102
+
103
103
  @another_embedder.save stylesheets.first[:path]
104
104
  css_contents = File.read(stylesheets.first[:path])
105
105
 
@@ -192,6 +192,40 @@ class TestImageEmbed < Test::Unit::TestCase
192
192
  end
193
193
  end
194
194
 
195
+ should "force embedding images into css file" do
196
+ @embedder = Juicer::ImageEmbed.new(:type => :data_uri, :document_root => '', :force => true)
197
+ @stylesheets = [
198
+ {
199
+ :path => '/stylesheets/test_embed_true.css',
200
+ :content => "body: { background: url(#{@supported_assets.first[:path]}); }"
201
+ }
202
+ ]
203
+ create_files( @stylesheets )
204
+
205
+ @stylesheets.each do |stylesheet|
206
+ old_contents = File.read( stylesheet[:path] )
207
+
208
+ # make sure there are no errors
209
+ assert_nothing_raised do
210
+ @embedder.save stylesheet[:path]
211
+ end
212
+
213
+ css_contents = File.read( stylesheet[:path] )
214
+
215
+ # make sure the original url does not exist anymore
216
+ assert_no_match( Regexp.new( @supported_assets.first[:path] ), css_contents )
217
+
218
+ # make sure the url has been converted into a data uri
219
+ image_contents = File.read( @supported_assets.first[:path] )
220
+
221
+ # # create the data uri from the image contents
222
+ data_uri = Datafy::make_data_uri( image_contents, 'image/png' )
223
+
224
+ # let's see if the data uri exists in the file
225
+ assert css_contents.include?( data_uri )
226
+ end
227
+ end
228
+
195
229
  should "not embed unflagged images" do
196
230
  @stylesheets = [
197
231
  {
@@ -249,7 +283,6 @@ class TestImageEmbed < Test::Unit::TestCase
249
283
  end
250
284
  end
251
285
 
252
-
253
286
  end # context
254
287
 
255
288
  context "embed method" do
@@ -275,7 +308,7 @@ class TestImageEmbed < Test::Unit::TestCase
275
308
  end
276
309
  end
277
310
 
278
- should "not encod unsupported asset types" do
311
+ should "not encode unsupported asset types" do
279
312
  @unsupported_assets.each do |asset|
280
313
  path = "#{asset[:path]}?embed=true"
281
314
  assert_equal( path, @embedder.embed_data_uri( path ) )
@@ -6,7 +6,7 @@ class TestJsLint < Test::Unit::TestCase
6
6
  @file = path("jsltest.js")
7
7
  super
8
8
  end
9
-
9
+
10
10
  def setup
11
11
  FileUtils.mkdir(path("")) unless File.exists?(path(""))
12
12
  File.open(@file, "w") { |f| f.puts "" }
@@ -20,7 +20,7 @@ class TestJsLint < Test::Unit::TestCase
20
20
  should "shell out to rhino/jslint" do
21
21
  jslint = Juicer::JsLint.new(:bin_path => @path)
22
22
  jslint.expects(:execute).with("-jar \"#{@path}/rhino1_7R3.jar\" \"#{@path}/jslint-1.0.js\" \"#{@file}\"").returns("jslint: No problems")
23
-
23
+
24
24
  assert jslint.check(@file).ok?
25
25
  end
26
26
  end
@@ -36,7 +36,7 @@ class TestJsLint < Test::Unit::TestCase
36
36
  should "be a report object for invalid files" do
37
37
  jslint = Juicer::JsLint.new(:bin_path => @path)
38
38
  jslint.expects(:execute).returns("Wrong use of semicolon\nWrong blabla")
39
-
39
+
40
40
  assert_equal Juicer::JsLint::Report, jslint.check(path("not-ok.js")).class
41
41
  end
42
42
  end
@@ -216,7 +216,7 @@ EOF
216
216
  assert_equal "../images/1.png", merger.resolve_path("/images/1.png", nil)
217
217
  end
218
218
  end
219
-
219
+
220
220
  should "leave data URLs untouched" do
221
221
  merger = Juicer::Merger::StylesheetMerger.new([],
222
222
  :document_root => "test/data",
@@ -44,7 +44,7 @@ class ClosureCompilerTest < Test::Unit::TestCase
44
44
  File.delete('compiler.jar') if File.exists?('compiler.jar')
45
45
  FileUtils.rm_rf("another") if File.exists?("another")
46
46
  end
47
-
47
+
48
48
  should "not find jar when no jars on path" do
49
49
  Juicer::Minifyer::ClosureCompiler.publicize_methods do
50
50
  closure = Juicer::Minifyer::ClosureCompiler.new
@@ -69,7 +69,7 @@ class ClosureCompilerTest < Test::Unit::TestCase
69
69
  File.open('compiler-2.3.5.jar', 'w') { |f| f.puts '' }
70
70
 
71
71
  closure = Juicer::Minifyer::ClosureCompiler.new
72
-
72
+
73
73
  # Test
74
74
  assert_equal File.expand_path('compiler-2.3.5.jar'), closure.locate_jar
75
75
  end
@@ -83,7 +83,7 @@ class ClosureCompilerTest < Test::Unit::TestCase
83
83
  File.open('compiler.jar', 'w') { |f| f.puts '' }
84
84
 
85
85
  closure = Juicer::Minifyer::ClosureCompiler.new
86
-
86
+
87
87
  # Test
88
88
  assert_equal File.expand_path('compiler.jar'), closure.locate_jar
89
89
  end
@@ -96,7 +96,7 @@ class ClosureCompilerTest < Test::Unit::TestCase
96
96
  File.open('another/compiler-2.3.4.jar', 'w') { |f| f.puts "" }
97
97
 
98
98
  closure = Juicer::Minifyer::ClosureCompiler.new
99
-
99
+
100
100
  # Test
101
101
  assert_nil closure.locate_jar
102
102
  closure = Juicer::Minifyer::ClosureCompiler.new({ :bin_path => 'another' })
@@ -52,8 +52,9 @@ class TestYuiCompressor < Test::Unit::TestCase
52
52
  File.delete('yuicompressor-2.3.5.jar') if File.exists?('yuicompressor-2.3.5.jar')
53
53
  File.delete('yuicompressor.jar') if File.exists?('yuicompressor.jar')
54
54
  FileUtils.rm_rf("another") if File.exists?("another")
55
+ FileUtils.rm_rf("athird") if File.exists?("athird")
55
56
  end
56
-
57
+
57
58
  should "not find jar when no jars on path" do
58
59
  Juicer::Minifyer::YuiCompressor.publicize_methods do
59
60
  yui_compressor = Juicer::Minifyer::YuiCompressor.new
@@ -78,7 +79,7 @@ class TestYuiCompressor < Test::Unit::TestCase
78
79
  File.open('yuicompressor-2.3.5.jar', 'w') { |f| f.puts '' }
79
80
 
80
81
  yui_compressor = Juicer::Minifyer::YuiCompressor.new
81
-
82
+
82
83
  # Test
83
84
  assert_equal File.expand_path('yuicompressor-2.3.5.jar'), yui_compressor.locate_jar
84
85
  end
@@ -92,7 +93,7 @@ class TestYuiCompressor < Test::Unit::TestCase
92
93
  File.open('yuicompressor.jar', 'w') { |f| f.puts '' }
93
94
 
94
95
  yui_compressor = Juicer::Minifyer::YuiCompressor.new
95
-
96
+
96
97
  # Test
97
98
  assert_equal File.expand_path('yuicompressor.jar'), yui_compressor.locate_jar
98
99
  end
@@ -105,12 +106,28 @@ class TestYuiCompressor < Test::Unit::TestCase
105
106
  File.open('another/yuicompressor-2.3.4.jar', 'w') { |f| f.puts "" }
106
107
 
107
108
  yui_compressor = Juicer::Minifyer::YuiCompressor.new
108
-
109
+
109
110
  # Test
110
111
  assert_nil yui_compressor.locate_jar
111
112
  yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => 'another' })
112
113
  assert_equal File.expand_path('another/yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
113
114
  end
114
115
  end
116
+
117
+ should "find jar in one of several custom directories" do
118
+ Juicer::Minifyer::YuiCompressor.publicize_methods do
119
+ # Prepare
120
+ Dir.mkdir('another')
121
+ Dir.mkdir('athird')
122
+ File.open('athird/yuicompressor-2.3.4.jar', 'w') { |f| f.puts "" }
123
+
124
+ yui_compressor = Juicer::Minifyer::YuiCompressor.new
125
+
126
+ # Test
127
+ assert_nil yui_compressor.locate_jar
128
+ yui_compressor = Juicer::Minifyer::YuiCompressor.new({ :bin_path => ['another', 'athird'] })
129
+ assert_equal File.expand_path('athird/yuicompressor-2.3.4.jar'), yui_compressor.locate_jar
130
+ end
131
+ end
115
132
  end
116
133
  end
@@ -1 +1 @@
1
- require "test_helper"
1
+ require "test_helper"
metadata CHANGED
@@ -1,142 +1,165 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: juicer
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 0
9
- - 13
10
- version: 1.0.13
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.14
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Christian Johansen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-08-30 00:00:00 +02:00
19
- default_executable: juicer
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: shoulda
12
+ date: 2012-04-13 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: juicer
16
+ requirement: &21762820 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
23
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *21762820
25
+ - !ruby/object:Gem::Dependency
26
+ name: shoulda
27
+ requirement: &21733400 !ruby/object:Gem::Requirement
25
28
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 35
30
- segments:
31
- - 2
32
- - 10
33
- - 2
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
34
32
  version: 2.10.2
35
33
  type: :development
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: mocha
39
34
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *21733400
36
+ - !ruby/object:Gem::Dependency
37
+ name: mocha
38
+ requirement: &21732820 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 43
46
- segments:
47
- - 0
48
- - 9
49
- - 8
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
50
43
  version: 0.9.8
51
44
  type: :development
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: fakefs
55
45
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: *21732820
47
+ - !ruby/object:Gem::Dependency
48
+ name: fakefs
49
+ requirement: &21732260 !ruby/object:Gem::Requirement
57
50
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 21
62
- segments:
63
- - 0
64
- - 2
65
- - 1
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
66
54
  version: 0.2.1
67
55
  type: :development
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
56
+ prerelease: false
57
+ version_requirements: *21732260
58
+ - !ruby/object:Gem::Dependency
70
59
  name: jeweler
60
+ requirement: &21731740 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: 0.2.1
66
+ type: :development
71
67
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
68
+ version_requirements: *21731740
69
+ - !ruby/object:Gem::Dependency
70
+ name: shoulda
71
+ requirement: &21731140 !ruby/object:Gem::Requirement
73
72
  none: false
74
- requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- hash: 21
78
- segments:
79
- - 0
80
- - 2
81
- - 1
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 2.10.2
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *21731140
80
+ - !ruby/object:Gem::Dependency
81
+ name: mocha
82
+ requirement: &21730560 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 0.9.8
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *21730560
91
+ - !ruby/object:Gem::Dependency
92
+ name: fakefs
93
+ requirement: &21729980 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: 0.2.1
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *21729980
102
+ - !ruby/object:Gem::Dependency
103
+ name: jeweler
104
+ requirement: &21729400 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
82
109
  version: 0.2.1
83
110
  type: :development
84
- version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
- name: cmdparse
87
111
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
112
+ version_requirements: *21729400
113
+ - !ruby/object:Gem::Dependency
114
+ name: cmdparse
115
+ requirement: &21728800 !ruby/object:Gem::Requirement
89
116
  none: false
90
- requirements:
91
- - - ">="
92
- - !ruby/object:Gem::Version
93
- hash: 3
94
- segments:
95
- - 0
96
- version: "0"
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
97
121
  type: :runtime
98
- version_requirements: *id005
99
- - !ruby/object:Gem::Dependency
100
- name: nokogiri
101
122
  prerelease: false
102
- requirement: &id006 !ruby/object:Gem::Requirement
123
+ version_requirements: *21728800
124
+ - !ruby/object:Gem::Dependency
125
+ name: nokogiri
126
+ requirement: &21728220 !ruby/object:Gem::Requirement
103
127
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- hash: 3
108
- segments:
109
- - 1
110
- - 5
111
- - 0
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
112
131
  version: 1.5.0
113
132
  type: :runtime
114
- version_requirements: *id006
115
- - !ruby/object:Gem::Dependency
116
- name: rubyzip
117
133
  prerelease: false
118
- requirement: &id007 !ruby/object:Gem::Requirement
134
+ version_requirements: *21728220
135
+ - !ruby/object:Gem::Dependency
136
+ name: rubyzip
137
+ requirement: &21727640 !ruby/object:Gem::Requirement
119
138
  none: false
120
- requirements:
121
- - - ">="
122
- - !ruby/object:Gem::Version
123
- hash: 3
124
- segments:
125
- - 0
126
- version: "0"
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
127
143
  type: :runtime
128
- version_requirements: *id007
129
- description: Resolve dependencies, merge and minify CSS and JavaScript files with Juicer - the command line tool for frontend engineers
144
+ prerelease: false
145
+ version_requirements: *21727640
146
+ description: Resolve dependencies, merge and minify CSS and JavaScript files with
147
+ Juicer - the command line tool for frontend engineers
130
148
  email: christian@cjohansen.no
131
- executables:
149
+ executables:
132
150
  - juicer
133
151
  extensions: []
134
-
135
152
  extra_rdoc_files: []
136
-
137
- files:
153
+ files:
154
+ - GPATH
155
+ - GRTAGS
156
+ - GSYMS
157
+ - GTAGS
158
+ - Gemfile
159
+ - Gemfile.lock
138
160
  - History.txt
139
161
  - Manifest.txt
162
+ - Rakefile
140
163
  - Readme.rdoc
141
164
  - VERSION
142
165
  - bin/juicer
@@ -175,6 +198,42 @@ files:
175
198
  - lib/juicer/minifyer/closure_compiler.rb
176
199
  - lib/juicer/minifyer/java_base.rb
177
200
  - lib/juicer/minifyer/yui_compressor.rb
201
+ - test/bin/jslint-1.0.js
202
+ - test/bin/jslint.js
203
+ - test/bin/rhino1_7R1.zip
204
+ - test/bin/rhino1_7R2-RC1.jar
205
+ - test/bin/rhino1_7R2-RC1.zip
206
+ - test/bin/rhino1_7R3.jar
207
+ - test/bin/rhino1_7R3.zip
208
+ - test/bin/yuicompressor
209
+ - test/bin/yuicompressor-2.3.5.zip
210
+ - test/bin/yuicompressor-2.4.2.jar
211
+ - test/bin/yuicompressor-2.4.2.zip
212
+ - test/data/Changelog.txt
213
+ - test/data/a.css
214
+ - test/data/a.js
215
+ - test/data/a1.css
216
+ - test/data/b.css
217
+ - test/data/b.js
218
+ - test/data/b1.css
219
+ - test/data/b2.css
220
+ - test/data/c1.css
221
+ - test/data/css/2.gif
222
+ - test/data/css/test.css
223
+ - test/data/css/test2.css
224
+ - test/data/css/test3.css
225
+ - test/data/d1.css
226
+ - test/data/images/1.png
227
+ - test/data/my_app.js
228
+ - test/data/not-ok.js
229
+ - test/data/ok.js
230
+ - test/data/path_test.css
231
+ - test/data/path_test2.css
232
+ - test/data/pkg/module/moda.js
233
+ - test/data/pkg/module/modb.js
234
+ - test/data/pkg/pkg.js
235
+ - test/fixtures/rhino-download.html
236
+ - test/fixtures/yui-download.html
178
237
  - test/test_helper.rb
179
238
  - test/unit/juicer/asset/path_resolver_test.rb
180
239
  - test/unit/juicer/asset/path_test.rb
@@ -203,74 +262,41 @@ files:
203
262
  - test/unit/juicer/minifyer/closure_compressor_test.rb
204
263
  - test/unit/juicer/minifyer/yui_compressor_test.rb
205
264
  - test/unit/juicer_test.rb
206
- has_rdoc: true
207
265
  homepage: http://github.com/cjohansen/juicer
208
266
  licenses: []
267
+ post_install_message: ! 'Juicer does not ship with third party libraries. You probably
268
+ want to install
209
269
 
210
- post_install_message: |
211
- Juicer does not ship with third party libraries. You probably want to install
212
270
  Yui Compressor and JsLint now:
213
-
271
+
272
+
214
273
  juicer install yui_compressor
274
+
215
275
  juicer install jslint
216
-
276
+
277
+
217
278
  Happy juicing!
218
279
 
280
+ '
219
281
  rdoc_options: []
220
-
221
- require_paths:
282
+ require_paths:
222
283
  - lib
223
- required_ruby_version: !ruby/object:Gem::Requirement
284
+ required_ruby_version: !ruby/object:Gem::Requirement
224
285
  none: false
225
- requirements:
226
- - - ">="
227
- - !ruby/object:Gem::Version
228
- hash: 3
229
- segments:
230
- - 0
231
- version: "0"
232
- required_rubygems_version: !ruby/object:Gem::Requirement
286
+ requirements:
287
+ - - ! '>='
288
+ - !ruby/object:Gem::Version
289
+ version: '0'
290
+ required_rubygems_version: !ruby/object:Gem::Requirement
233
291
  none: false
234
- requirements:
235
- - - ">="
236
- - !ruby/object:Gem::Version
237
- hash: 3
238
- segments:
239
- - 0
240
- version: "0"
292
+ requirements:
293
+ - - ! '>='
294
+ - !ruby/object:Gem::Version
295
+ version: '0'
241
296
  requirements: []
242
-
243
297
  rubyforge_project: juicer
244
- rubygems_version: 1.3.7
298
+ rubygems_version: 1.8.10
245
299
  signing_key:
246
300
  specification_version: 3
247
301
  summary: Command line tool for CSS and JavaScript developers
248
- test_files:
249
- - test/test_helper.rb
250
- - test/unit/juicer/asset/path_resolver_test.rb
251
- - test/unit/juicer/asset/path_test.rb
252
- - test/unit/juicer/cache_buster_test.rb
253
- - test/unit/juicer/chainable_test.rb
254
- - test/unit/juicer/command/install_test.rb
255
- - test/unit/juicer/command/list_test.rb
256
- - test/unit/juicer/command/merge_test.rb
257
- - test/unit/juicer/command/util_test.rb
258
- - test/unit/juicer/command/verify_test.rb
259
- - test/unit/juicer/css_cache_buster_test.rb
260
- - test/unit/juicer/datafy_test.rb
261
- - test/unit/juicer/dependency_resolver/css_dependency_resolver_test.rb
262
- - test/unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb
263
- - test/unit/juicer/ext/string_test.rb
264
- - test/unit/juicer/ext/symbol_test.rb
265
- - test/unit/juicer/image_embed_test.rb
266
- - test/unit/juicer/install/installer_base_test.rb
267
- - test/unit/juicer/install/jslint_installer_test.rb
268
- - test/unit/juicer/install/rhino_installer_test.rb
269
- - test/unit/juicer/install/yui_compressor_test.rb
270
- - test/unit/juicer/jslint_test.rb
271
- - test/unit/juicer/merger/base_test.rb
272
- - test/unit/juicer/merger/javascript_merger_test.rb
273
- - test/unit/juicer/merger/stylesheet_merger_test.rb
274
- - test/unit/juicer/minifyer/closure_compressor_test.rb
275
- - test/unit/juicer/minifyer/yui_compressor_test.rb
276
- - test/unit/juicer_test.rb
302
+ test_files: []