sprockets-helpers 1.0.0 → 1.0.1

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.
data/README.md CHANGED
@@ -43,6 +43,11 @@ class App < Sinatra::Base
43
43
  config.prefix = assets_prefix
44
44
  config.digest = digest_assets
45
45
  config.public_path = public_folder
46
+
47
+ # Force to debug mode in development mode
48
+ # Debug mode automatically sets
49
+ # expand = true, digest = false, manifest = false
50
+ config.debug = true if development?
46
51
  end
47
52
  end
48
53
 
@@ -18,6 +18,13 @@ module Sprockets
18
18
  # When true, expand assets.
19
19
  attr_accessor :expand
20
20
 
21
+ # When true, force debug mode
22
+ # :debug => true equals
23
+ # :expand => true
24
+ # :digest => false
25
+ # :manifest => false
26
+ attr_accessor :debug
27
+
21
28
  # Set the Sprockets environment to search for assets.
22
29
  # This defaults to the context's #environment method.
23
30
  attr_accessor :environment
@@ -114,7 +121,7 @@ module Sprockets
114
121
  uri = URI.parse(source)
115
122
  return source if uri.absolute?
116
123
 
117
- if options[:debug]
124
+ if Helpers.debug || options[:debug]
118
125
  options[:manifest] = false
119
126
  options[:digest] = false
120
127
  options[:asset_host] = false
@@ -136,13 +143,17 @@ module Sprockets
136
143
 
137
144
  def asset_tag(source, options = {}, &block)
138
145
  raise ::ArgumentError, 'block missing' unless block
139
- options = { :expand => Helpers.expand }.merge(options)
140
- path = asset_path source, options
141
- if options[:expand] && path.respond_to?(:map)
142
- return path.map(&block).join()
146
+ options = { :expand => Helpers.debug || Helpers.expand, :debug => Helpers.debug }.merge(options)
147
+
148
+ path = asset_path(source, options)
149
+ output = if options[:expand] && path.respond_to?(:map)
150
+ path.map(&block).join("\n")
143
151
  else
144
152
  yield path
145
153
  end
154
+
155
+ output = output.html_safe if output.respond_to?(:html_safe)
156
+ output
146
157
  end
147
158
 
148
159
  def javascript_tag(source, options = {})
@@ -1,5 +1,5 @@
1
1
  module Sprockets
2
2
  module Helpers
3
- VERSION = '1.0.0'
3
+ VERSION = '1.0.1'
4
4
  end
5
5
  end
@@ -284,24 +284,49 @@ describe Sprockets::Helpers do
284
284
  end
285
285
 
286
286
  context 'when debuging' do
287
- it 'does not read the path from the manifest file' do
288
- within_construct do |c|
289
- asset_file = c.file 'assets/application.js'
290
- manifest_file = c.join 'manifest.json'
291
-
292
- manifest = Sprockets::Manifest.new(env, manifest_file)
293
- manifest.compile 'application.js'
294
-
295
- Sprockets::Helpers.configure do |config|
296
- config.digest = true
297
- config.prefix = '/assets'
298
- config.manifest = Sprockets::Manifest.new(env, manifest_file)
287
+ context 'when set individually' do
288
+ it 'does not read the path from the manifest file' do
289
+ within_construct do |c|
290
+ asset_file = c.file 'assets/application.js'
291
+ manifest_file = c.join 'manifest.json'
292
+
293
+ manifest = Sprockets::Manifest.new(env, manifest_file)
294
+ manifest.compile 'application.js'
295
+
296
+ Sprockets::Helpers.configure do |config|
297
+ config.digest = true
298
+ config.prefix = '/assets'
299
+ config.manifest = Sprockets::Manifest.new(env, manifest_file)
300
+ end
301
+
302
+ expect(context.asset_path('application.js', :debug => true)).to eq('/assets/application.js')
303
+
304
+ Sprockets::Helpers.digest = nil
305
+ Sprockets::Helpers.prefix = nil
299
306
  end
307
+ end
308
+ end
309
+
310
+ context 'when set globally' do
311
+ it 'does not read the path from the manifest file' do
312
+ within_construct do |c|
313
+ asset_file = c.file 'assets/application.js'
314
+ manifest_file = c.join 'manifest.json'
315
+
316
+ manifest = Sprockets::Manifest.new(env, manifest_file)
317
+ manifest.compile 'application.js'
318
+
319
+ Sprockets::Helpers.debug = true
320
+ Sprockets::Helpers.configure do |config|
321
+ config.prefix = '/assets'
322
+ config.manifest = Sprockets::Manifest.new(env, manifest_file)
323
+ end
300
324
 
301
- expect(context.asset_path('application.js', :debug => true)).to eq('/assets/application.js')
325
+ expect(context.asset_path('application.js')).to eq('/assets/application.js')
302
326
 
303
- Sprockets::Helpers.digest = nil
304
- Sprockets::Helpers.prefix = nil
327
+ Sprockets::Helpers.debug = nil
328
+ Sprockets::Helpers.prefix = nil
329
+ end
305
330
  end
306
331
  end
307
332
  end
@@ -385,10 +410,24 @@ describe Sprockets::Helpers do
385
410
  Sprockets::Helpers.expand = true
386
411
  c = context
387
412
  c.stub(:asset_path).and_return(context.asset_path('main.js')) # Spy
388
- c.should_receive(:asset_path).with('main.js', {:expand => true})
413
+ c.should_receive(:asset_path).with('main.js', {:expand => true, :debug => nil})
389
414
  c.asset_tag('main.js') {}
390
415
  Sprockets::Helpers.expand = false
391
- c.should_receive(:asset_path).with('main.js', {:expand => false})
416
+ c.should_receive(:asset_path).with('main.js', {:expand => false, :debug => nil})
417
+ c.asset_tag('main.js') {}
418
+ end
419
+ end
420
+
421
+ it 'force to be debug mode when globally configured' do
422
+ within_construct do |construct|
423
+ assets_layout(construct)
424
+ Sprockets::Helpers.debug = true
425
+ c = context
426
+ c.stub(:asset_path).and_return(context.asset_path('main.js')) # Spy
427
+ c.should_receive(:asset_path).with('main.js', {:expand => true, :debug => true})
428
+ c.asset_tag('main.js') {}
429
+ Sprockets::Helpers.debug = false
430
+ c.should_receive(:asset_path).with('main.js', {:expand => false, :debug => false})
392
431
  c.asset_tag('main.js') {}
393
432
  end
394
433
  end
@@ -410,7 +449,37 @@ describe Sprockets::Helpers do
410
449
  expect(tags).to include('<script src="/assets/b.js?body=1"></script>')
411
450
  end
412
451
  end
452
+ end
453
+
454
+ if defined?(Sprockets::Manifest)
455
+ describe 'when globally debug mode is set' do
456
+ it 'generates tag for each asset without reading the path from manifest file' do
457
+ within_construct do |construct|
458
+ assets_layout(construct)
459
+ manifest_file = construct.join 'manifest.json'
460
+
461
+ manifest = Sprockets::Manifest.new(env, manifest_file)
462
+ manifest.compile 'main.js'
463
+ Sprockets::Helpers.debug = true
464
+ Sprockets::Helpers.configure do |config|
465
+ config.prefix = '/assets'
466
+ config.manifest = Sprockets::Manifest.new(env, manifest_file)
467
+ end
468
+
469
+ tags = context.asset_tag('main.js') do |path|
470
+ "<script src=\"#{path}\"></script>"
471
+ end
472
+ expect(tags.split('</script>')).to have(3).scripts
473
+ expect(tags).to include('<script src="/assets/main.js?body=1"></script>')
474
+ expect(tags).to include('<script src="/assets/a.js?body=1"></script>')
475
+ expect(tags).to include('<script src="/assets/b.js?body=1"></script>')
413
476
 
477
+ Sprockets::Helpers.debug = false
478
+ Sprockets::Helpers.prefix = nil
479
+ Sprockets::Helpers.manifest = nil
480
+ end
481
+ end
482
+ end
414
483
  end
415
484
  end
416
485
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-20 00:00:00.000000000 Z
12
+ date: 2013-04-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sprockets
@@ -156,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  segments:
158
158
  - 0
159
- hash: -4510165657637312689
159
+ hash: 1829303642401758750
160
160
  required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
165
  version: '0'
166
166
  segments:
167
167
  - 0
168
- hash: -4510165657637312689
168
+ hash: 1829303642401758750
169
169
  requirements: []
170
170
  rubyforge_project: sprockets-helpers
171
171
  rubygems_version: 1.8.23