asset_hat 0.3.1 → 0.4.0

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 (52) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +37 -0
  3. data/HISTORY +10 -0
  4. data/README.rdoc +117 -75
  5. data/Rakefile +4 -4
  6. data/VERSION.yml +2 -2
  7. data/asset_hat.gemspec +69 -7
  8. data/config/assets.yml +46 -24
  9. data/doc/classes/AssetHat.html +183 -118
  10. data/doc/classes/AssetHat/CSS.html +21 -21
  11. data/doc/classes/AssetHat/CSS/Engines.html +10 -10
  12. data/doc/classes/AssetHat/JS.html +13 -13
  13. data/doc/classes/AssetHat/JS/Engines.html +10 -10
  14. data/doc/classes/AssetHat/JS/Vendors.html +85 -22
  15. data/doc/classes/AssetHatHelper.html +94 -19
  16. data/doc/created.rid +1 -1
  17. data/doc/files/HISTORY.html +20 -2
  18. data/doc/files/LICENSE.html +1 -1
  19. data/doc/files/README_rdoc.html +87 -31
  20. data/doc/files/lib/asset_hat/capistrano_rb.html +1 -1
  21. data/doc/files/lib/asset_hat/css_rb.html +1 -1
  22. data/doc/files/lib/asset_hat/initializers/action_view_rb.html +49 -0
  23. data/doc/files/lib/asset_hat/initializers/cache_last_commit_ids_rb.html +49 -0
  24. data/doc/files/lib/asset_hat/js/vendors_rb.html +1 -1
  25. data/doc/files/lib/asset_hat/js_rb.html +1 -1
  26. data/doc/files/lib/asset_hat/railtie_rb.html +61 -0
  27. data/doc/files/lib/asset_hat/tasks/css_rb.html +1 -1
  28. data/doc/files/lib/asset_hat/tasks/js_rb.html +1 -1
  29. data/doc/files/lib/asset_hat/tasks_rb.html +2 -1
  30. data/doc/files/lib/asset_hat/unicorn_rb.html +58 -0
  31. data/doc/files/lib/asset_hat/vcs_rb.html +1 -1
  32. data/doc/files/lib/asset_hat/version_rb.html +1 -1
  33. data/doc/files/{app/helpers → lib}/asset_hat_helper_rb.html +3 -3
  34. data/doc/files/lib/asset_hat_rb.html +9 -1
  35. data/doc/files/lib/tasks/asset_hat_rake.html +54 -0
  36. data/doc/fr_file_index.html +6 -1
  37. data/doc/fr_method_index.html +60 -52
  38. data/lib/asset_hat.rb +104 -59
  39. data/lib/asset_hat/initializers/action_view.rb +1 -0
  40. data/lib/asset_hat/initializers/cache_last_commit_ids.rb +1 -0
  41. data/lib/asset_hat/js/vendors.rb +198 -72
  42. data/lib/asset_hat/railtie.rb +19 -0
  43. data/lib/asset_hat/tasks.rb +5 -2
  44. data/lib/asset_hat/unicorn.rb +9 -0
  45. data/lib/asset_hat/vcs.rb +3 -2
  46. data/{app/helpers → lib}/asset_hat_helper.rb +184 -29
  47. data/{tasks → lib/tasks}/asset_hat.rake +0 -0
  48. data/rails/init.rb +2 -2
  49. data/test/asset_hat_helper_test.rb +731 -148
  50. data/test/asset_hat_test.rb +23 -2
  51. data/test/test_helper.rb +4 -8
  52. metadata +311 -30
@@ -2,11 +2,11 @@ require 'test_helper'
2
2
 
3
3
  class AssetHatTest < ActiveSupport::TestCase
4
4
  context 'AssetHat' do
5
- should 'know where to store assets' do
5
+ should 'know where to find/store assets in the file system' do
6
6
  assert_equal 'public/stylesheets', AssetHat.assets_dir(:css)
7
7
  assert_equal 'public/javascripts', AssetHat.assets_dir(:js)
8
8
 
9
- assert_equal 'bundles', AssetHat.bundles_dir
9
+ assert_equal 'bundles', AssetHat.bundles_dir
10
10
  assert_equal 'bundles/ssl', AssetHat.bundles_dir(:ssl => true)
11
11
  assert_equal 'public/stylesheets/bundles', AssetHat.bundles_dir(:css)
12
12
  assert_equal 'public/javascripts/bundles', AssetHat.bundles_dir(:js)
@@ -16,6 +16,27 @@ class AssetHatTest < ActiveSupport::TestCase
16
16
  AssetHat.bundles_dir(:js, :ssl => true)
17
17
  end
18
18
 
19
+ should 'know whether the config file needs to be generated' do
20
+ flexmock(File).should_receive(:exists?).
21
+ with(AssetHat::CONFIG_FILEPATH).and_return(false)
22
+
23
+ assert_raise RuntimeError do
24
+ AssetHat.config
25
+ end
26
+ end
27
+
28
+ should 'know where to find assets via a URL' do
29
+ assert_equal '/stylesheets', AssetHat.assets_path(:css)
30
+ assert_equal '/javascripts', AssetHat.assets_path(:js)
31
+
32
+ assert_equal '/stylesheets/bundles', AssetHat.bundles_path(:css)
33
+ assert_equal '/stylesheets/bundles/ssl',
34
+ AssetHat.bundles_path(:css, :ssl => true)
35
+ assert_equal '/javascripts/bundles', AssetHat.bundles_path(:js)
36
+ assert_equal '/javascripts/bundles/ssl',
37
+ AssetHat.bundles_path(:js, :ssl => true)
38
+ end
39
+
19
40
  context 'with caching enabled' do
20
41
  setup do
21
42
  flexmock(AssetHat, :cache? => true)
data/test/test_helper.rb CHANGED
@@ -5,27 +5,23 @@ require 'action_controller'
5
5
  require 'action_view/test_case'
6
6
 
7
7
  require 'shoulda'
8
- require 'asset_hat'
9
8
  require 'flexmock/test_unit'
10
- Dir[File.join(File.dirname(__FILE__), %w[.. app helpers *])].each { |f| require f }
9
+ require 'asset_hat'
10
+ require 'asset_hat_helper'
11
11
 
12
12
 
13
13
 
14
14
  ActionController::Base.perform_caching = false
15
15
 
16
16
  unless defined?(Rails)
17
- # Enable `Rails.env.test?`, `Rails.env.development?`, etc.
18
17
  module Rails
19
18
  class << self
20
- def env ; ActiveSupport::StringInquirer.new('test') ; end
19
+ # Enable `Rails.env.test?`, `Rails.env.development?`, etc.
20
+ def env; ActiveSupport::StringInquirer.new('test'); end
21
21
  end
22
22
  end
23
23
  end
24
24
 
25
- @original_config = AssetHat.config
26
- # Use this when FlexMock refuses to teardown automatically. (Yes,
27
- # this is ugly.)
28
-
29
25
  class ActionView::TestCase
30
26
  teardown :clear_html_cache
31
27
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_hat
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 1
10
- version: 0.3.1
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ron DeVera
@@ -16,13 +16,28 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-04-02 00:00:00 -04:00
19
+ date: 2011-05-06 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- name: flexmock
24
23
  prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ name: asset_hat
25
+ type: :runtime
26
+ version_requirements: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 3
32
+ segments:
33
+ - 0
34
+ version: "0"
35
+ requirement: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ prerelease: false
38
+ name: flexmock
39
+ type: :development
40
+ version_requirements: &id002 !ruby/object:Gem::Requirement
26
41
  none: false
27
42
  requirements:
28
43
  - - ~>
@@ -33,12 +48,12 @@ dependencies:
33
48
  - 8
34
49
  - 6
35
50
  version: 0.8.6
36
- type: :development
37
- version_requirements: *id001
51
+ requirement: *id002
38
52
  - !ruby/object:Gem::Dependency
39
- name: hanna
40
53
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
54
+ name: hanna
55
+ type: :development
56
+ version_requirements: &id003 !ruby/object:Gem::Requirement
42
57
  none: false
43
58
  requirements:
44
59
  - - ~>
@@ -49,12 +64,76 @@ dependencies:
49
64
  - 1
50
65
  - 12
51
66
  version: 0.1.12
52
- type: :development
53
- version_requirements: *id002
67
+ requirement: *id003
54
68
  - !ruby/object:Gem::Dependency
69
+ prerelease: false
55
70
  name: jeweler
71
+ type: :development
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 1
78
+ segments:
79
+ - 1
80
+ - 5
81
+ - 1
82
+ version: 1.5.1
83
+ requirement: *id004
84
+ - !ruby/object:Gem::Dependency
56
85
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
86
+ name: shoulda
87
+ type: :development
88
+ version_requirements: &id005 !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ hash: 35
94
+ segments:
95
+ - 2
96
+ - 10
97
+ - 2
98
+ version: 2.10.2
99
+ requirement: *id005
100
+ - !ruby/object:Gem::Dependency
101
+ prerelease: false
102
+ name: flexmock
103
+ type: :development
104
+ version_requirements: &id006 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ hash: 51
110
+ segments:
111
+ - 0
112
+ - 8
113
+ - 6
114
+ version: 0.8.6
115
+ requirement: *id006
116
+ - !ruby/object:Gem::Dependency
117
+ prerelease: false
118
+ name: hanna
119
+ type: :development
120
+ version_requirements: &id007 !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ hash: 3
126
+ segments:
127
+ - 0
128
+ - 1
129
+ - 12
130
+ version: 0.1.12
131
+ requirement: *id007
132
+ - !ruby/object:Gem::Dependency
133
+ prerelease: false
134
+ name: jeweler
135
+ type: :development
136
+ version_requirements: &id008 !ruby/object:Gem::Requirement
58
137
  none: false
59
138
  requirements:
60
139
  - - ~>
@@ -65,12 +144,140 @@ dependencies:
65
144
  - 5
66
145
  - 1
67
146
  version: 1.5.1
147
+ requirement: *id008
148
+ - !ruby/object:Gem::Dependency
149
+ prerelease: false
150
+ name: shoulda
151
+ type: :development
152
+ version_requirements: &id009 !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ hash: 35
158
+ segments:
159
+ - 2
160
+ - 10
161
+ - 2
162
+ version: 2.10.2
163
+ requirement: *id009
164
+ - !ruby/object:Gem::Dependency
165
+ prerelease: false
166
+ name: flexmock
167
+ type: :development
168
+ version_requirements: &id010 !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ hash: 51
174
+ segments:
175
+ - 0
176
+ - 8
177
+ - 6
178
+ version: 0.8.6
179
+ requirement: *id010
180
+ - !ruby/object:Gem::Dependency
181
+ prerelease: false
182
+ name: hanna
68
183
  type: :development
69
- version_requirements: *id003
184
+ version_requirements: &id011 !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ hash: 3
190
+ segments:
191
+ - 0
192
+ - 1
193
+ - 12
194
+ version: 0.1.12
195
+ requirement: *id011
196
+ - !ruby/object:Gem::Dependency
197
+ prerelease: false
198
+ name: jeweler
199
+ type: :development
200
+ version_requirements: &id012 !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ hash: 1
206
+ segments:
207
+ - 1
208
+ - 5
209
+ - 1
210
+ version: 1.5.1
211
+ requirement: *id012
70
212
  - !ruby/object:Gem::Dependency
213
+ prerelease: false
71
214
  name: shoulda
215
+ type: :development
216
+ version_requirements: &id013 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ hash: 35
222
+ segments:
223
+ - 2
224
+ - 10
225
+ - 2
226
+ version: 2.10.2
227
+ requirement: *id013
228
+ - !ruby/object:Gem::Dependency
72
229
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
230
+ name: flexmock
231
+ type: :development
232
+ version_requirements: &id014 !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ hash: 51
238
+ segments:
239
+ - 0
240
+ - 8
241
+ - 6
242
+ version: 0.8.6
243
+ requirement: *id014
244
+ - !ruby/object:Gem::Dependency
245
+ prerelease: false
246
+ name: hanna
247
+ type: :development
248
+ version_requirements: &id015 !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ~>
252
+ - !ruby/object:Gem::Version
253
+ hash: 3
254
+ segments:
255
+ - 0
256
+ - 1
257
+ - 12
258
+ version: 0.1.12
259
+ requirement: *id015
260
+ - !ruby/object:Gem::Dependency
261
+ prerelease: false
262
+ name: jeweler
263
+ type: :development
264
+ version_requirements: &id016 !ruby/object:Gem::Requirement
265
+ none: false
266
+ requirements:
267
+ - - ~>
268
+ - !ruby/object:Gem::Version
269
+ hash: 1
270
+ segments:
271
+ - 1
272
+ - 5
273
+ - 1
274
+ version: 1.5.1
275
+ requirement: *id016
276
+ - !ruby/object:Gem::Dependency
277
+ prerelease: false
278
+ name: shoulda
279
+ type: :development
280
+ version_requirements: &id017 !ruby/object:Gem::Requirement
74
281
  none: false
75
282
  requirements:
76
283
  - - ~>
@@ -81,12 +288,76 @@ dependencies:
81
288
  - 10
82
289
  - 2
83
290
  version: 2.10.2
291
+ requirement: *id017
292
+ - !ruby/object:Gem::Dependency
293
+ prerelease: false
294
+ name: flexmock
84
295
  type: :development
85
- version_requirements: *id004
296
+ version_requirements: &id018 !ruby/object:Gem::Requirement
297
+ none: false
298
+ requirements:
299
+ - - ~>
300
+ - !ruby/object:Gem::Version
301
+ hash: 51
302
+ segments:
303
+ - 0
304
+ - 8
305
+ - 6
306
+ version: 0.8.6
307
+ requirement: *id018
308
+ - !ruby/object:Gem::Dependency
309
+ prerelease: false
310
+ name: hanna
311
+ type: :development
312
+ version_requirements: &id019 !ruby/object:Gem::Requirement
313
+ none: false
314
+ requirements:
315
+ - - ~>
316
+ - !ruby/object:Gem::Version
317
+ hash: 3
318
+ segments:
319
+ - 0
320
+ - 1
321
+ - 12
322
+ version: 0.1.12
323
+ requirement: *id019
324
+ - !ruby/object:Gem::Dependency
325
+ prerelease: false
326
+ name: jeweler
327
+ type: :development
328
+ version_requirements: &id020 !ruby/object:Gem::Requirement
329
+ none: false
330
+ requirements:
331
+ - - ~>
332
+ - !ruby/object:Gem::Version
333
+ hash: 1
334
+ segments:
335
+ - 1
336
+ - 5
337
+ - 1
338
+ version: 1.5.1
339
+ requirement: *id020
86
340
  - !ruby/object:Gem::Dependency
87
- name: cssmin
88
341
  prerelease: false
89
- requirement: &id005 !ruby/object:Gem::Requirement
342
+ name: shoulda
343
+ type: :development
344
+ version_requirements: &id021 !ruby/object:Gem::Requirement
345
+ none: false
346
+ requirements:
347
+ - - ~>
348
+ - !ruby/object:Gem::Version
349
+ hash: 35
350
+ segments:
351
+ - 2
352
+ - 10
353
+ - 2
354
+ version: 2.10.2
355
+ requirement: *id021
356
+ - !ruby/object:Gem::Dependency
357
+ prerelease: false
358
+ name: cssmin
359
+ type: :runtime
360
+ version_requirements: &id022 !ruby/object:Gem::Requirement
90
361
  none: false
91
362
  requirements:
92
363
  - - ~>
@@ -97,12 +368,12 @@ dependencies:
97
368
  - 0
98
369
  - 2
99
370
  version: 1.0.2
100
- type: :runtime
101
- version_requirements: *id005
371
+ requirement: *id022
102
372
  - !ruby/object:Gem::Dependency
103
- name: jsmin
104
373
  prerelease: false
105
- requirement: &id006 !ruby/object:Gem::Requirement
374
+ name: jsmin
375
+ type: :runtime
376
+ version_requirements: &id023 !ruby/object:Gem::Requirement
106
377
  none: false
107
378
  requirements:
108
379
  - - ~>
@@ -113,9 +384,8 @@ dependencies:
113
384
  - 0
114
385
  - 1
115
386
  version: 1.0.1
116
- type: :runtime
117
- version_requirements: *id006
118
- description: Minifies, bundles, and optimizes CSS/JS assets ahead of time (e.g., on deploy), not at runtime. Loads popular JS frameworks (like jQuery and Prototype) from localhost in development, and auto-switches to Google's CDN in production. Can rewrite stylesheets to use CDN hosts (not just your web server) and cache-busting hashes for updated images.
387
+ requirement: *id023
388
+ description: Minifies, bundles, and optimizes CSS/JS assets ahead of time (e.g., on deploy), not at runtime. Loads popular third-party JS (like jQuery, YUI, and Ext JS) from localhost in development, and auto-switches to Google's CDN in production. Can rewrite stylesheets to use CDN hosts (not just your web server) and cache-busting hashes for updated images.
119
389
  email: hello@rondevera.com
120
390
  executables: []
121
391
 
@@ -125,12 +395,13 @@ extra_rdoc_files:
125
395
  - LICENSE
126
396
  - README.rdoc
127
397
  files:
398
+ - Gemfile
399
+ - Gemfile.lock
128
400
  - HISTORY
129
401
  - LICENSE
130
402
  - README.rdoc
131
403
  - Rakefile
132
404
  - VERSION.yml
133
- - app/helpers/asset_hat_helper.rb
134
405
  - asset_hat.gemspec
135
406
  - config/assets.yml
136
407
  - doc/classes/AssetHat.html
@@ -144,17 +415,22 @@ files:
144
415
  - doc/files/HISTORY.html
145
416
  - doc/files/LICENSE.html
146
417
  - doc/files/README_rdoc.html
147
- - doc/files/app/helpers/asset_hat_helper_rb.html
148
418
  - doc/files/lib/asset_hat/capistrano_rb.html
149
419
  - doc/files/lib/asset_hat/css_rb.html
420
+ - doc/files/lib/asset_hat/initializers/action_view_rb.html
421
+ - doc/files/lib/asset_hat/initializers/cache_last_commit_ids_rb.html
150
422
  - doc/files/lib/asset_hat/js/vendors_rb.html
151
423
  - doc/files/lib/asset_hat/js_rb.html
424
+ - doc/files/lib/asset_hat/railtie_rb.html
152
425
  - doc/files/lib/asset_hat/tasks/css_rb.html
153
426
  - doc/files/lib/asset_hat/tasks/js_rb.html
154
427
  - doc/files/lib/asset_hat/tasks_rb.html
428
+ - doc/files/lib/asset_hat/unicorn_rb.html
155
429
  - doc/files/lib/asset_hat/vcs_rb.html
156
430
  - doc/files/lib/asset_hat/version_rb.html
431
+ - doc/files/lib/asset_hat_helper_rb.html
157
432
  - doc/files/lib/asset_hat_rb.html
433
+ - doc/files/lib/tasks/asset_hat_rake.html
158
434
  - doc/fr_class_index.html
159
435
  - doc/fr_file_index.html
160
436
  - doc/fr_method_index.html
@@ -163,13 +439,19 @@ files:
163
439
  - lib/asset_hat.rb
164
440
  - lib/asset_hat/capistrano.rb
165
441
  - lib/asset_hat/css.rb
442
+ - lib/asset_hat/initializers/action_view.rb
443
+ - lib/asset_hat/initializers/cache_last_commit_ids.rb
166
444
  - lib/asset_hat/js.rb
167
445
  - lib/asset_hat/js/vendors.rb
446
+ - lib/asset_hat/railtie.rb
168
447
  - lib/asset_hat/tasks.rb
169
448
  - lib/asset_hat/tasks/css.rb
170
449
  - lib/asset_hat/tasks/js.rb
450
+ - lib/asset_hat/unicorn.rb
171
451
  - lib/asset_hat/vcs.rb
172
452
  - lib/asset_hat/version.rb
453
+ - lib/asset_hat_helper.rb
454
+ - lib/tasks/asset_hat.rake
173
455
  - public/javascripts/bundles/js-bundle-1.min.js
174
456
  - public/javascripts/bundles/js-bundle-2.min.js
175
457
  - public/javascripts/bundles/js-bundle-3.min.js
@@ -198,7 +480,6 @@ files:
198
480
  - public/stylesheets/css-file-3-2.css
199
481
  - public/stylesheets/css-file-3-3.css
200
482
  - rails/init.rb
201
- - tasks/asset_hat.rake
202
483
  - test/asset_hat_helper_test.rb
203
484
  - test/asset_hat_test.rb
204
485
  - test/test_helper.rb
@@ -232,7 +513,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
232
513
  requirements: []
233
514
 
234
515
  rubyforge_project:
235
- rubygems_version: 1.5.2
516
+ rubygems_version: 1.4.2
236
517
  signing_key:
237
518
  specification_version: 3
238
519
  summary: Your assets are covered.