juicer 1.0.13 → 1.0.14

Sign up to get free protection for your applications and to get access to all the features.
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: []