psyho_juicer 1.0.0 → 1.0.7

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 (49) hide show
  1. data/Gemfile +11 -0
  2. data/History.txt +33 -0
  3. data/Readme.rdoc +16 -4
  4. data/VERSION +1 -1
  5. data/lib/juicer/asset/path.rb +6 -10
  6. data/lib/juicer/cache_buster.rb +53 -13
  7. data/lib/juicer/command/merge.rb +14 -6
  8. data/lib/juicer/css_cache_buster.rb +6 -4
  9. data/lib/juicer/dependency_resolver/css_dependency_resolver.rb +1 -1
  10. data/lib/juicer/image_embed.rb +18 -20
  11. data/lib/juicer/install/yui_compressor_installer.rb +2 -1
  12. data/lib/juicer/merger/stylesheet_merger.rb +5 -5
  13. data/lib/juicer/minifyer/closure_compiler.rb +1 -1
  14. data/lib/juicer.rb +1 -1
  15. data/lib/psyho_juicer.rb +1 -0
  16. data/test/data/Changelog.txt +10 -0
  17. data/test/data/a.css +3 -0
  18. data/test/data/a.js +5 -0
  19. data/test/data/a1.css +5 -0
  20. data/test/data/b.css +1 -0
  21. data/test/data/b.js +5 -0
  22. data/test/data/b1.css +5 -0
  23. data/test/data/b2.css +5 -0
  24. data/test/data/c1.css +3 -0
  25. data/test/data/css/2.gif +1 -0
  26. data/test/data/css/test.css +15 -0
  27. data/test/data/css/test2.css +1 -0
  28. data/test/data/css/test3.css +12 -0
  29. data/test/data/d1.css +3 -0
  30. data/test/data/images/1.png +1 -0
  31. data/test/data/my_app.js +2 -0
  32. data/test/data/not-ok.js +2 -0
  33. data/test/data/ok.js +3 -0
  34. data/test/data/path_test.css +5 -0
  35. data/test/data/path_test2.css +14 -0
  36. data/test/data/pkg/module/moda.js +2 -0
  37. data/test/data/pkg/module/modb.js +3 -0
  38. data/test/data/pkg/pkg.js +1 -0
  39. data/test/fixtures/git-tracked-file.txt +1 -0
  40. data/test/fixtures/yui-download.html +103 -243
  41. data/test/test_helper.rb +27 -1
  42. data/test/unit/juicer/asset/path_test.rb +7 -1
  43. data/test/unit/juicer/cache_buster_test.rb +95 -5
  44. data/test/unit/juicer/command/util_test.rb +1 -1
  45. data/test/unit/juicer/css_cache_buster_test.rb +127 -32
  46. data/test/unit/juicer/image_embed_test.rb +35 -0
  47. data/test/unit/juicer/merger/stylesheet_merger_test.rb +175 -109
  48. data/test/unit/juicer/minifyer/closure_compressor_test.rb +3 -3
  49. metadata +68 -21
@@ -1,7 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
3
  class TestStylesheetMerger < Test::Unit::TestCase
4
-
5
4
  def setup
6
5
  @file_merger = Juicer::Merger::StylesheetMerger.new
7
6
  Juicer::Test::FileSetup.new.create
@@ -15,34 +14,41 @@ class TestStylesheetMerger < Test::Unit::TestCase
15
14
  Dir.chdir(@cwd)
16
15
  end
17
16
 
18
- def test_init
19
- Juicer::Merger::StylesheetMerger.publicize_methods do
20
- assert_equal Juicer::CssDependencyResolver, @file_merger.dependency_resolver.class
21
- end
22
- end
17
+ context "stylesheet merger" do
18
+ should "keep reference to css dependency resolver" do
19
+ Juicer::Merger::StylesheetMerger.publicize_methods do
20
+ resolver = @file_merger.dependency_resolver
23
21
 
24
- def test_merge
25
- Juicer::Merger::StylesheetMerger.publicize_methods do
26
- a_content = "\n\n/* Dette er a.css */\n"
27
- content = @file_merger.merge(path('a.css'))
28
- assert_equal a_content + "\n", content
22
+ assert_equal Juicer::CssDependencyResolver, resolver.class
23
+ end
29
24
  end
30
- end
31
25
 
32
- def test_constructor
33
- file_merger = Juicer::Merger::StylesheetMerger.new(path('a.css'))
34
- assert_equal 2, file_merger.files.length
35
- end
26
+ should "merge single file" do
27
+ Juicer::Merger::StylesheetMerger.publicize_methods do
28
+ a_content = "\n\n/* Dette er a.css */\n"
29
+ content = @file_merger.merge(path('a.css'))
30
+
31
+ assert_equal a_content + "\n", content
32
+ end
33
+ end
36
34
 
37
- def test_append
38
- @file_merger << path('a.css')
39
- assert_equal 2, @file_merger.files.length
35
+ should "recognize all files" do
36
+ file_merger = Juicer::Merger::StylesheetMerger.new(path('a.css'))
37
+
38
+ assert_equal 2, file_merger.files.length
39
+ end
40
+
41
+ should "not append existing file" do
42
+ @file_merger << path('a.css')
43
+ assert_equal 2, @file_merger.files.length
44
+ end
40
45
  end
41
46
 
42
- def test_save
43
- a_css = path('a.css')
44
- b_css = path('b.css')
45
- merged = <<EOF
47
+ context "saving files" do
48
+ should "merge files and strip @includes" do
49
+ a_css = path('a.css')
50
+ b_css = path('b.css')
51
+ merged = <<EOF
46
52
  /* Dette er b.css */
47
53
 
48
54
 
@@ -51,130 +57,190 @@ class TestStylesheetMerger < Test::Unit::TestCase
51
57
 
52
58
  EOF
53
59
 
54
- @file_merger << a_css
55
- ios = StringIO.new
56
- @file_merger.save(ios)
57
- assert_equal merged, ios.string
60
+ @file_merger << a_css
61
+ ios = StringIO.new
62
+ @file_merger.save(ios)
63
+ assert_equal merged, ios.string
58
64
 
59
- output_file = path('test_out.css')
60
- @file_merger.save(output_file)
65
+ output_file = path('test_out.css')
66
+ @file_merger.save(output_file)
61
67
 
62
- assert_equal merged, IO.read(output_file)
63
- end
68
+ assert_equal merged, IO.read(output_file)
69
+ end
64
70
 
65
- def test_included_files_should_have_referenced_relative_urls_rereferenced
66
- @file_merger << path("path_test.css")
67
- ios = StringIO.new
68
- @file_merger.save(ios)
69
- files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }.uniq.sort
71
+ should "strip @includes for quoted urls" do
72
+ css = path('b2.css')
73
+
74
+ merged = <<EOF
75
+ h2 {
76
+ font-size: 10px;
77
+ }
70
78
 
71
- assert_equal "a1.css::css/2.gif::images/1.png", files.join("::")
72
- end
73
79
 
74
- def test_resolve_path_should_leave_absolute_urls
75
- merger = Juicer::Merger::StylesheetMerger.new
76
- url = "/some/url"
77
80
 
78
- Juicer::Merger::StylesheetMerger.publicize_methods do
79
- assert_equal url, merger.resolve_path(url, nil)
81
+ html {
82
+ background: red;
83
+ }
84
+
85
+ EOF
86
+
87
+ @file_merger << css
88
+ ios = StringIO.new
89
+ @file_merger.save(ios)
90
+ assert_equal merged, ios.string
80
91
  end
81
92
  end
82
93
 
83
- def test_resolve_path_error_when_relative_missing_document_root
84
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
94
+ context "resolving paths" do
95
+ should "re-reference relative paths" do
96
+ @file_merger << path("path_test.css")
97
+ ios = StringIO.new
98
+ @file_merger.save(ios)
99
+ files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }.uniq.sort
100
+
101
+ assert_equal "a1.css::css/2.gif::images/1.png", files.join("::")
102
+ end
85
103
 
86
- Juicer::Merger::StylesheetMerger.publicize_methods do
87
- assert_raise ArgumentError do
88
- merger.resolve_path("/some/url", nil)
104
+ should "not touch absolute urls" do
105
+ merger = Juicer::Merger::StylesheetMerger.new
106
+ url = "/some/url"
107
+
108
+ Juicer::Merger::StylesheetMerger.publicize_methods do
109
+ assert_equal url, merger.resolve_path(url, nil)
89
110
  end
90
111
  end
91
- end
92
112
 
93
- def test_resolve_path_should_make_absolute_urls_relative
94
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true, :document_root => "/home/usr"
113
+ should "raise when mapping absolute to relative path without document root" do
114
+ merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
95
115
 
96
- Juicer::Merger::StylesheetMerger.publicize_methods do
97
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
98
- assert_equal "../some/url", merger.resolve_path("/some/url", nil)
116
+ Juicer::Merger::StylesheetMerger.publicize_methods do
117
+ assert_raise ArgumentError do
118
+ merger.resolve_path("/some/url", nil)
119
+ end
120
+ end
99
121
  end
100
- end
101
122
 
102
- def test_resolve_path_should_leave_full_urls
103
- merger = Juicer::Merger::StylesheetMerger.new []
104
- url = "http://test.com"
123
+ should "make absolute urls relative" do
124
+ merger = Juicer::Merger::StylesheetMerger.new([],
125
+ :relative_urls => true,
126
+ :document_root => "/home/usr")
127
+
128
+ Juicer::Merger::StylesheetMerger.publicize_methods do
129
+ merger.instance_eval { @root = Pathname.new "/home/usr/design" }
130
+
131
+ assert_equal "../some/url", merger.resolve_path("/some/url", nil)
132
+ end
133
+ end
134
+
135
+ should "should leave full urls" do
136
+ merger = Juicer::Merger::StylesheetMerger.new []
137
+ url = "http://test.com"
138
+
139
+ Juicer::Merger::StylesheetMerger.publicize_methods do
140
+ merger.instance_eval { @root = Pathname.new "/home/usr/design" }
105
141
 
106
- Juicer::Merger::StylesheetMerger.publicize_methods do
107
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
108
- assert_equal url, merger.resolve_path(url, nil)
142
+ assert_equal url, merger.resolve_path(url, nil)
143
+ end
109
144
  end
110
- end
111
145
 
112
- def test_resolve_path_error_when_missing_absolute_document_root
113
- merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true
146
+ should "error when missing document root for absolute urls" do
147
+ merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true
114
148
 
115
- Juicer::Merger::StylesheetMerger.publicize_methods do
116
- assert_raise ArgumentError do
117
- merger.resolve_path("../some/url", nil)
149
+ Juicer::Merger::StylesheetMerger.publicize_methods do
150
+ assert_raise ArgumentError do
151
+ merger.resolve_path("../some/url", nil)
152
+ end
118
153
  end
119
154
  end
120
- end
121
155
 
122
- def test_resolve_path_should_make_relative_urls_absolute
123
- merger = Juicer::Merger::StylesheetMerger.new [], :absolute_urls => true, :document_root => "/home/usr"
156
+ should "make relative urls absolute" do
157
+ merger = Juicer::Merger::StylesheetMerger.new([],
158
+ :absolute_urls => true,
159
+ :document_root => "/home/usr")
124
160
 
125
- Juicer::Merger::StylesheetMerger.publicize_methods do
126
- merger.instance_eval { @root = Pathname.new "/home/usr/design" }
127
- assert_equal "/design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
161
+ Juicer::Merger::StylesheetMerger.publicize_methods do
162
+ merger.instance_eval { @root = Pathname.new "/home/usr/design" }
163
+ assert_equal "/design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
164
+ end
128
165
  end
129
- end
130
166
 
131
- def test_resolve_path_should_redefine_relative_urls
132
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
167
+ should "redefine relative urls" do
168
+ merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true
133
169
 
134
- Juicer::Merger::StylesheetMerger.publicize_methods do
135
- merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
136
- assert_equal "../../design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
170
+ Juicer::Merger::StylesheetMerger.publicize_methods do
171
+ merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
172
+ assert_equal "../../design/images/1.png", merger.resolve_path("../images/1.png", "/home/usr/design/css")
173
+ end
137
174
  end
138
- end
139
175
 
140
- def test_resolve_path_should_redefine_absolute_urls
141
- merger = Juicer::Merger::StylesheetMerger.new [], :relative_urls => true, :document_root => "/home/usr"
176
+ should "redefine absolute urls" do
177
+ merger = Juicer::Merger::StylesheetMerger.new([],
178
+ :relative_urls => true,
179
+ :document_root => "/home/usr")
180
+
181
+ Juicer::Merger::StylesheetMerger.publicize_methods do
182
+ merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
183
+ result = merger.resolve_path("/images/1.png", "/home/usr/design/css")
184
+
185
+ assert_equal "../../images/1.png", result
186
+ end
187
+ end
188
+
189
+ should "cycle asset hosts" do
190
+ hosts = ["http://assets1", "http://assets2", "http://assets3"]
191
+ merger = Juicer::Merger::StylesheetMerger.new([], :hosts => hosts)
192
+
193
+ Juicer::Merger::StylesheetMerger.publicize_methods do
194
+ merger.instance_eval do
195
+ @root = Pathname.new "/home/usr/design2/css"
196
+ end
142
197
 
143
- Juicer::Merger::StylesheetMerger.publicize_methods do
144
- merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
145
- assert_equal "../../images/1.png", merger.resolve_path("/images/1.png", "/home/usr/design/css")
198
+ assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
199
+ assert_equal "http://assets2/images/1.png", merger.resolve_path("/images/1.png", nil)
200
+ assert_equal "http://assets3/images/1.png", merger.resolve_path("/images/1.png", nil)
201
+ assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
202
+ end
146
203
  end
147
- end
148
204
 
149
- def test_resolve_path_with_hosts_should_cycle_asset_hosts
150
- merger = Juicer::Merger::StylesheetMerger.new [], :hosts => ["http://assets1", "http://assets2", "http://assets3"]
205
+ should "handle relative document roots" do
206
+ merger = Juicer::Merger::StylesheetMerger.new([],
207
+ :document_root => "test/data",
208
+ :relative_urls => true)
209
+ merger << File.expand_path("css/test2.css")
210
+
211
+ Juicer::Merger::StylesheetMerger.publicize_methods do
212
+ merger.instance_eval do
213
+ @root = Pathname.new File.expand_path("test/data/css")
214
+ end
151
215
 
152
- Juicer::Merger::StylesheetMerger.publicize_methods do
153
- merger.instance_eval { @root = Pathname.new "/home/usr/design2/css" }
154
- assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
155
- assert_equal "http://assets2/images/1.png", merger.resolve_path("/images/1.png", nil)
156
- assert_equal "http://assets3/images/1.png", merger.resolve_path("/images/1.png", nil)
157
- assert_equal "http://assets1/images/1.png", merger.resolve_path("/images/1.png", nil)
216
+ assert_equal "../images/1.png", merger.resolve_path("/images/1.png", nil)
217
+ end
158
218
  end
159
- end
160
219
 
161
- def test_resolve_paths_should_handle_relative_document_roots
162
- merger = Juicer::Merger::StylesheetMerger.new [], :document_root => "test/data", :relative_urls => true
163
- merger << File.expand_path("css/test2.css")
220
+ should "cycle hosts for relative urls" do
221
+ merger = Juicer::Merger::StylesheetMerger.new([],
222
+ :document_root => "test/data",
223
+ :hosts => ["http://assets1/"])
224
+ merger << File.expand_path("path_test2.css")
225
+
226
+ Juicer::Merger::StylesheetMerger.publicize_methods do
227
+ merger.instance_eval do
228
+ @root = Pathname.new(File.expand_path("test/data/css"))
229
+ end
164
230
 
165
- Juicer::Merger::StylesheetMerger.publicize_methods do
166
- merger.instance_eval { @root = Pathname.new File.expand_path("test/data/css") }
167
- assert_equal "../images/1.png", merger.resolve_path("/images/1.png", nil)
231
+ expected = "http://assets1/images/1.png"
232
+ assert_equal expected, merger.resolve_path("../images/1.png", "test/data/css")
233
+ end
168
234
  end
169
- end
170
235
 
171
- def test_cycle_asset_hosts_should_use_same_host_for_same_url
172
- @file_merger = Juicer::Merger::StylesheetMerger.new nil, :hosts => ["http://assets1", "http://assets2", "http://assets3"]
173
- @file_merger << path("path_test2.css")
174
- ios = StringIO.new
175
- @file_merger.save(ios)
176
- files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }
236
+ should "use same host for same url when cycling asset hosts" do
237
+ @file_merger = Juicer::Merger::StylesheetMerger.new nil, :hosts => ["http://assets1", "http://assets2", "http://assets3"]
238
+ @file_merger << path("path_test2.css")
239
+ ios = StringIO.new
240
+ @file_merger.save(ios)
241
+ files = ios.string.scan(/url\(([^\)]*)\)/).collect { |f| f.first }
177
242
 
178
- assert_equal "1/images/1.png::2/css/2.gif::3/a1.css::2/css/2.gif::1/a2.css".gsub(/(\d\/)/, 'http://assets\1'), files.join("::")
243
+ assert_equal "1/images/1.png::2/css/2.gif::3/a1.css::2/css/2.gif::1/a2.css".gsub(/(\d\/)/, 'http://assets\1'), files.join("::")
244
+ end
179
245
  end
180
246
  end
@@ -13,18 +13,18 @@ class ClosureCompilerTest < Test::Unit::TestCase
13
13
 
14
14
  context "#save" do
15
15
  should "overwrite existing file" do
16
- @closure.expects(:execute).with(%Q{#@cmd -js_output_file "#@output" -js "#@output"})
16
+ @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#@output" --js "#@output"})
17
17
  @closure.save(@output, @output)
18
18
  end
19
19
 
20
20
  should "write compressed input to output" do
21
- @closure.expects(:execute).with(%Q{#@cmd -js_output_file "#@output" -js "#@input"})
21
+ @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#@output" --js "#@input"})
22
22
  @closure.save(@input, @output)
23
23
  end
24
24
 
25
25
  should "create non-existant path" do
26
26
  output = "some/nested/directory"
27
- @closure.expects(:execute).with(%Q{#@cmd -js_output_file "#{output}/file.css" -js "#@input"})
27
+ @closure.expects(:execute).with(%Q{#@cmd --js_output_file "#{output}/file.css" --js "#@input"})
28
28
  FileUtils.expects(:mkdir_p).with(output)
29
29
  @closure.save(@input, "#{output}/file.css")
30
30
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psyho_juicer
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 25
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 0
8
- - 0
9
- version: 1.0.0
9
+ - 7
10
+ version: 1.0.7
10
11
  platform: ruby
11
12
  authors:
12
13
  - Christian Johansen
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-03-01 00:00:00 +01:00
18
+ date: 2010-08-23 00:00:00 +02:00
18
19
  default_executable: juicer
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: shoulda
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 35
27
30
  segments:
28
31
  - 2
29
32
  - 10
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: mocha
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 43
41
46
  segments:
42
47
  - 0
43
48
  - 9
@@ -49,9 +54,11 @@ dependencies:
49
54
  name: fakefs
50
55
  prerelease: false
51
56
  requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
52
58
  requirements:
53
59
  - - ">="
54
60
  - !ruby/object:Gem::Version
61
+ hash: 21
55
62
  segments:
56
63
  - 0
57
64
  - 2
@@ -63,9 +70,11 @@ dependencies:
63
70
  name: jeweler
64
71
  prerelease: false
65
72
  requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
66
74
  requirements:
67
75
  - - ">="
68
76
  - !ruby/object:Gem::Version
77
+ hash: 21
69
78
  segments:
70
79
  - 0
71
80
  - 2
@@ -77,9 +86,11 @@ dependencies:
77
86
  name: redgreen
78
87
  prerelease: false
79
88
  requirement: &id005 !ruby/object:Gem::Requirement
89
+ none: false
80
90
  requirements:
81
91
  - - ">="
82
92
  - !ruby/object:Gem::Version
93
+ hash: 27
83
94
  segments:
84
95
  - 1
85
96
  - 2
@@ -91,9 +102,11 @@ dependencies:
91
102
  name: cmdparse
92
103
  prerelease: false
93
104
  requirement: &id006 !ruby/object:Gem::Requirement
105
+ none: false
94
106
  requirements:
95
107
  - - ">="
96
108
  - !ruby/object:Gem::Version
109
+ hash: 3
97
110
  segments:
98
111
  - 0
99
112
  version: "0"
@@ -103,9 +116,11 @@ dependencies:
103
116
  name: nokogiri
104
117
  prerelease: false
105
118
  requirement: &id007 !ruby/object:Gem::Requirement
119
+ none: false
106
120
  requirements:
107
121
  - - ">="
108
122
  - !ruby/object:Gem::Version
123
+ hash: 3
109
124
  segments:
110
125
  - 0
111
126
  version: "0"
@@ -115,9 +130,11 @@ dependencies:
115
130
  name: rubyzip
116
131
  prerelease: false
117
132
  requirement: &id008 !ruby/object:Gem::Requirement
133
+ none: false
118
134
  requirements:
119
135
  - - ">="
120
136
  - !ruby/object:Gem::Version
137
+ hash: 3
121
138
  segments:
122
139
  - 0
123
140
  version: "0"
@@ -132,6 +149,7 @@ extensions: []
132
149
  extra_rdoc_files: []
133
150
 
134
151
  files:
152
+ - Gemfile
135
153
  - History.txt
136
154
  - Manifest.txt
137
155
  - Rakefile
@@ -171,6 +189,7 @@ files:
171
189
  - lib/juicer/minifyer/closure_compiler.rb
172
190
  - lib/juicer/minifyer/java_base.rb
173
191
  - lib/juicer/minifyer/yui_compressor.rb
192
+ - lib/psyho_juicer.rb
174
193
  - test/bin/jslint-1.0.js
175
194
  - test/bin/jslint.js
176
195
  - test/bin/rhino1_7R1.zip
@@ -180,6 +199,30 @@ files:
180
199
  - test/bin/yuicompressor-2.3.5.zip
181
200
  - test/bin/yuicompressor-2.4.2.jar
182
201
  - test/bin/yuicompressor-2.4.2.zip
202
+ - test/data/Changelog.txt
203
+ - test/data/a.css
204
+ - test/data/a.js
205
+ - test/data/a1.css
206
+ - test/data/b.css
207
+ - test/data/b.js
208
+ - test/data/b1.css
209
+ - test/data/b2.css
210
+ - test/data/c1.css
211
+ - test/data/css/2.gif
212
+ - test/data/css/test.css
213
+ - test/data/css/test2.css
214
+ - test/data/css/test3.css
215
+ - test/data/d1.css
216
+ - test/data/images/1.png
217
+ - test/data/my_app.js
218
+ - test/data/not-ok.js
219
+ - test/data/ok.js
220
+ - test/data/path_test.css
221
+ - test/data/path_test2.css
222
+ - test/data/pkg/module/moda.js
223
+ - test/data/pkg/module/modb.js
224
+ - test/data/pkg/pkg.js
225
+ - test/fixtures/git-tracked-file.txt
183
226
  - test/fixtures/yui-download.html
184
227
  - test/test_helper.rb
185
228
  - test/unit/juicer/asset/path_resolver_test.rb
@@ -227,52 +270,56 @@ rdoc_options:
227
270
  require_paths:
228
271
  - lib
229
272
  required_ruby_version: !ruby/object:Gem::Requirement
273
+ none: false
230
274
  requirements:
231
275
  - - ">="
232
276
  - !ruby/object:Gem::Version
277
+ hash: 3
233
278
  segments:
234
279
  - 0
235
280
  version: "0"
236
281
  required_rubygems_version: !ruby/object:Gem::Requirement
282
+ none: false
237
283
  requirements:
238
284
  - - ">="
239
285
  - !ruby/object:Gem::Version
286
+ hash: 3
240
287
  segments:
241
288
  - 0
242
289
  version: "0"
243
290
  requirements: []
244
291
 
245
292
  rubyforge_project: juicer
246
- rubygems_version: 1.3.6
293
+ rubygems_version: 1.3.7
247
294
  signing_key:
248
295
  specification_version: 3
249
296
  summary: Command line tool for CSS and JavaScript developers
250
297
  test_files:
251
298
  - test/unit/juicer_test.rb
252
- - test/unit/juicer/command/install_test.rb
253
- - test/unit/juicer/command/merge_test.rb
254
- - test/unit/juicer/command/verify_test.rb
255
- - test/unit/juicer/command/list_test.rb
256
- - test/unit/juicer/command/util_test.rb
257
- - test/unit/juicer/ext/string_test.rb
258
- - test/unit/juicer/ext/symbol_test.rb
259
- - test/unit/juicer/image_embed_test.rb
260
- - test/unit/juicer/chainable_test.rb
261
- - test/unit/juicer/dependency_resolver/css_dependency_resolver_test.rb
299
+ - test/unit/juicer/cache_buster_test.rb
262
300
  - test/unit/juicer/dependency_resolver/javascript_dependency_resolver_test.rb
263
- - test/unit/juicer/install/rhino_installer_test.rb
301
+ - test/unit/juicer/dependency_resolver/css_dependency_resolver_test.rb
302
+ - test/unit/juicer/jslint_test.rb
264
303
  - test/unit/juicer/install/installer_base_test.rb
265
304
  - test/unit/juicer/install/jslint_installer_test.rb
266
305
  - test/unit/juicer/install/yui_compressor_test.rb
306
+ - test/unit/juicer/install/rhino_installer_test.rb
307
+ - test/unit/juicer/asset/path_test.rb
308
+ - test/unit/juicer/asset/path_resolver_test.rb
267
309
  - test/unit/juicer/datafy_test.rb
268
- - test/unit/juicer/jslint_test.rb
269
- - test/unit/juicer/cache_buster_test.rb
270
- - test/unit/juicer/merger/stylesheet_merger_test.rb
271
310
  - test/unit/juicer/merger/base_test.rb
272
311
  - test/unit/juicer/merger/javascript_merger_test.rb
273
- - test/unit/juicer/minifyer/yui_compressor_test.rb
312
+ - test/unit/juicer/merger/stylesheet_merger_test.rb
313
+ - test/unit/juicer/chainable_test.rb
314
+ - test/unit/juicer/image_embed_test.rb
315
+ - test/unit/juicer/ext/symbol_test.rb
316
+ - test/unit/juicer/ext/string_test.rb
274
317
  - test/unit/juicer/minifyer/closure_compressor_test.rb
275
- - test/unit/juicer/asset/path_test.rb
276
- - test/unit/juicer/asset/path_resolver_test.rb
318
+ - test/unit/juicer/minifyer/yui_compressor_test.rb
319
+ - test/unit/juicer/command/merge_test.rb
320
+ - test/unit/juicer/command/verify_test.rb
321
+ - test/unit/juicer/command/util_test.rb
322
+ - test/unit/juicer/command/list_test.rb
323
+ - test/unit/juicer/command/install_test.rb
277
324
  - test/unit/juicer/css_cache_buster_test.rb
278
325
  - test/test_helper.rb