asset_hat 0.3.1 → 0.4.0

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