sprockets-helpers 0.9.1 → 1.0.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.
data/Appraisals CHANGED
@@ -25,3 +25,15 @@ end
25
25
  appraise 'sprockets-2.6' do
26
26
  gem 'sprockets', '~> 2.6.0'
27
27
  end
28
+
29
+ appraise 'sprockets-2.7' do
30
+ gem 'sprockets', '~> 2.7.0'
31
+ end
32
+
33
+ appraise 'sprockets-2.8' do
34
+ gem 'sprockets', '~> 2.8.0'
35
+ end
36
+
37
+ appraise 'sprockets-2.9' do
38
+ gem 'sprockets', '~> 2.9.0'
39
+ end
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- sprockets-helpers
2
- =================
1
+ # sprockets-helpers
3
2
 
4
3
  **Asset path helpers for Sprockets 2.x applications**
5
4
 
@@ -12,17 +11,13 @@ Sprockets::Helpers adds the asset_path helpers, familiar to Rails developers, to
12
11
  * Optionally outputs digest paths.
13
12
  * Falls back to file paths in the public directory & adds cache busting timestamp.
14
13
 
15
-
16
- Installation
17
- ------------
14
+ ## Installation
18
15
 
19
16
  ``` bash
20
17
  $ gem install sprockets-helpers
21
18
  ```
22
19
 
23
-
24
- Setup
25
- -----
20
+ ## Setup
26
21
 
27
22
  Let's build a simple Sinatra app using Sprockets and Sprockets::Helpers (See my fork of [sinatra-asset-pipeline](https://github.com/petebrowne/sinatra-asset-pipeline) for complete setup):
28
23
 
@@ -67,9 +62,7 @@ class App < Sinatra::Base
67
62
  end
68
63
  ```
69
64
 
70
-
71
- Usage in Assets
72
- ---------------
65
+ ## Usage in Assets
73
66
 
74
67
  Simply requiring sprockets-helpers will add the asset path helpers to the Sprocket context, making them available within any asset. For example, a file `assets/javascripts/paths.js.erb`:
75
68
 
@@ -83,9 +76,7 @@ Would be transformed into:
83
76
  var Paths = { railsImage: '/assets/rails.png' };
84
77
  ```
85
78
 
86
-
87
- Usage in the App
88
- ----------------
79
+ ## Usage in the App
89
80
 
90
81
  The helpers can also be used in the app itself. You just include the `Sprockets::Helpers` module and set Sprockets::Helpers.environment to the Sprockets environment to search for the assets. Alternatively you can define an #assets_environment method in the context of #asset_path, which returns a reference to the Sprockets environment (see above).
91
82
 
@@ -159,9 +150,7 @@ Would become:
159
150
  </html>
160
151
  ```
161
152
 
162
-
163
- Fallback to Public Directory
164
- ----------------------------
153
+ ## Fallback to Public Directory
165
154
 
166
155
  If the source is not an asset in the Sprockets environment, Sprockets::Helpers will fallback to looking for the file in the application's public directory. It will also append the cache busting timestamp of the file. For example:
167
156
 
@@ -177,11 +166,9 @@ Would become:
177
166
  <img src='/images/logo.jpg?1320093919'>
178
167
  ```
179
168
 
169
+ ## Manifest Usage
180
170
 
181
- Manifest Usage
182
- --------------
183
-
184
- **New in 0.4**: Sprockets::Helpers will use the latest fingerprinted filename directly from a `manifest.json` file:
171
+ Sprockets::Helpers will use the latest fingerprinted filename directly from a `manifest.json` file:
185
172
 
186
173
 
187
174
  ``` ruby
@@ -195,8 +182,41 @@ end
195
182
  # ...
196
183
  ```
197
184
 
185
+ ## Sinatra Integration
186
+
187
+ **New in 1.0**: there is an easier way to integrate with Sinatra applications. You can register the `Sinatra::Sprockets::Helpers` extension and it will automatically include the helpers:
188
+
189
+ ``` ruby
190
+ require 'sinatra/base'
191
+ require 'sprockets'
192
+ require 'sinatra/sprockets-helpers'
193
+
194
+ class App < Sinatra::Base
195
+ register Sinatra::Sprockets::Helpers
196
+ set :sprockets, Sprockets::Environment.new(root)
197
+ set :assets_prefix, '/assets'
198
+ set :digest_assets, true
199
+
200
+ configure do
201
+ # Setup Sprockets
202
+ sprockets.append_path File.join(root, 'assets', 'stylesheets')
203
+ sprockets.append_path File.join(root, 'assets', 'javascripts')
204
+ sprockets.append_path File.join(root, 'assets', 'images')
205
+
206
+ configure_sprockets_helpers do |helpers|
207
+ # This will automatically configure Sprockets::Helpers based on the
208
+ # `sprockets`, `public_folder`, `assets_prefix`, and `digest_assets`
209
+ # settings if they exist. Otherwise you can configure as normal:
210
+ helpers.asset_host = 'some-bucket.s3.amazon.com'
211
+ end
212
+ end
213
+
214
+ get '/' do
215
+ erb :index
216
+ end
217
+ end
218
+ ```
198
219
 
199
- Copyright
200
- ---------
220
+ ## Copyright
201
221
 
202
222
  Copyright (c) 2011 [Peter Browne](http://petebrowne.com). See LICENSE for details.
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "sprockets", "~> 2.7.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "sprockets", "~> 2.8.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "sprockets", "~> 2.9.0"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1 @@
1
+ require 'sinatra/sprockets/helpers'
@@ -0,0 +1,34 @@
1
+ require 'sinatra/base'
2
+ require 'sprockets/helpers'
3
+
4
+ module Sinatra
5
+ module Sprockets
6
+ module Helpers
7
+ def self.registered(app)
8
+ app.helpers ::Sprockets::Helpers
9
+ app.configure_sprockets_helpers
10
+ end
11
+
12
+ def configure_sprockets_helpers(&block)
13
+ ::Sprockets::Helpers.configure do |helpers|
14
+ with_setting(:sprockets) { |value| helpers.environment = value }
15
+ with_setting(:public_folder) { |value| helpers.public_path = value }
16
+ with_setting(:digest_assets) { |value| helpers.digest = value }
17
+ with_setting(:assets_prefix) { |value| helpers.prefix = value }
18
+ end
19
+ ::Sprockets::Helpers.configure(&block) if block_given?
20
+ end
21
+
22
+ private
23
+
24
+ def with_setting(name, &block)
25
+ return unless settings.respond_to?(name)
26
+
27
+ value = settings.__send__(name)
28
+ yield value unless value.nil?
29
+ end
30
+ end
31
+ end
32
+
33
+ register Sprockets::Helpers
34
+ end
@@ -1,5 +1,5 @@
1
1
  module Sprockets
2
2
  module Helpers
3
- VERSION = '0.9.1'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  require 'sprockets'
2
2
  require 'sprockets-helpers'
3
+ require 'sinatra/base'
4
+ require 'sinatra/sprockets/helpers'
3
5
  require 'construct'
4
6
  require 'pathname'
5
7
 
@@ -10,6 +12,11 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
10
12
  RSpec.configure do |config|
11
13
  config.include Construct::Helpers
12
14
 
15
+ # Disable old `should` syntax
16
+ config.expect_with :rspec do |c|
17
+ c.syntax = :expect
18
+ end
19
+
13
20
  # Returns a Sprockets environment. Automatically
14
21
  # appends the 'assets' path if available.
15
22
  def env
@@ -44,5 +51,4 @@ RSpec.configure do |config|
44
51
  c.file('assets/b.css')
45
52
  }.call(construct)
46
53
  end
47
-
48
54
  end
@@ -6,12 +6,12 @@ describe Sprockets::Helpers do
6
6
  within_construct do |c|
7
7
  c.file 'assets/main.css'
8
8
 
9
- context.asset_path('main.css').should == '/assets/main.css'
9
+ expect(context.asset_path('main.css')).to eq('/assets/main.css')
10
10
  Sprockets::Helpers.configure do |config|
11
11
  config.digest = true
12
12
  config.prefix = '/themes'
13
13
  end
14
- context.asset_path('main.css').should =~ %r(/themes/main-[0-9a-f]+.css)
14
+ expect(context.asset_path('main.css')).to match(%r(/themes/main-[0-9a-f]+.css))
15
15
  Sprockets::Helpers.digest = nil
16
16
  Sprockets::Helpers.prefix = nil
17
17
  end
@@ -23,9 +23,9 @@ describe Sprockets::Helpers do
23
23
  within_construct do |c|
24
24
  c.file 'assets/main.js'
25
25
 
26
- context.asset_path('main', :ext => 'js').should == '/assets/main.js'
26
+ expect(context.asset_path('main', :ext => 'js')).to eq('/assets/main.js')
27
27
  Sprockets::Helpers.digest = true
28
- context.asset_path('main', :ext => 'js').should =~ %r(/assets/main-[0-9a-f]+.js)
28
+ expect(context.asset_path('main', :ext => 'js')).to match(%r(/assets/main-[0-9a-f]+.js))
29
29
  Sprockets::Helpers.digest = nil
30
30
  end
31
31
  end
@@ -39,7 +39,7 @@ describe Sprockets::Helpers do
39
39
  custom_env = Sprockets::Environment.new
40
40
  custom_env.append_path 'themes'
41
41
  Sprockets::Helpers.environment = custom_env
42
- context.asset_path('main.css').should == '/assets/main.css'
42
+ expect(context.asset_path('main.css')).to eq('/assets/main.css')
43
43
  Sprockets::Helpers.environment = nil
44
44
  end
45
45
  end
@@ -53,8 +53,8 @@ describe Sprockets::Helpers do
53
53
  c.file 'public/logo.jpg'
54
54
 
55
55
  Sprockets::Helpers.asset_host = 'assets.example.com'
56
- context.asset_path('main.js').should == 'http://assets.example.com/assets/main.js'
57
- context.asset_path('logo.jpg').should =~ %r(http://assets.example.com/logo.jpg\?\d+)
56
+ expect(context.asset_path('main.js')).to eq('http://assets.example.com/assets/main.js')
57
+ expect(context.asset_path('logo.jpg')).to match(%r(http://assets.example.com/logo.jpg\?\d+))
58
58
  Sprockets::Helpers.asset_host = nil
59
59
  end
60
60
  end
@@ -66,8 +66,8 @@ describe Sprockets::Helpers do
66
66
  c.file 'public/logo.jpg'
67
67
 
68
68
  Sprockets::Helpers.asset_host = 'assets%d.example.com'
69
- context.asset_path('main.css').should =~ %r(http://assets[0-3].example.com/assets/main.css)
70
- context.asset_path('logo.jpg').should =~ %r(http://assets[0-3].example.com/logo.jpg\?\d+)
69
+ expect(context.asset_path('main.css')).to match(%r(http://assets[0-3].example.com/assets/main.css))
70
+ expect(context.asset_path('logo.jpg')).to match(%r(http://assets[0-3].example.com/logo.jpg\?\d+))
71
71
  Sprockets::Helpers.asset_host = nil
72
72
  end
73
73
  end
@@ -81,8 +81,8 @@ describe Sprockets::Helpers do
81
81
  c.file 'public/logo.jpg'
82
82
 
83
83
  Sprockets::Helpers.asset_host = Proc.new { |source| File.basename(source, File.extname(source)) + '.assets.example.com' }
84
- context.asset_path('main.js').should == 'http://main.assets.example.com/assets/main.js'
85
- context.asset_path('logo.jpg').should =~ %r(http://logo.assets.example.com/logo.jpg\?\d+)
84
+ expect(context.asset_path('main.js')).to eq('http://main.assets.example.com/assets/main.js')
85
+ expect(context.asset_path('logo.jpg')).to match(%r(http://logo.assets.example.com/logo.jpg\?\d+))
86
86
  Sprockets::Helpers.asset_host = nil
87
87
  end
88
88
  end
@@ -94,9 +94,9 @@ describe Sprockets::Helpers do
94
94
  within_construct do |c|
95
95
  c.file 'assets/logo.jpg'
96
96
 
97
- context.asset_path('logo.jpg').should == '/assets/logo.jpg'
97
+ expect(context.asset_path('logo.jpg')).to eq('/assets/logo.jpg')
98
98
  Sprockets::Helpers.prefix = '/images'
99
- context.asset_path('logo.jpg').should == '/images/logo.jpg'
99
+ expect(context.asset_path('logo.jpg')).to eq('/images/logo.jpg')
100
100
  Sprockets::Helpers.prefix = nil
101
101
  end
102
102
  end
@@ -110,8 +110,8 @@ describe Sprockets::Helpers do
110
110
 
111
111
  Sprockets::Helpers.asset_host = 'assets.example.com'
112
112
  Sprockets::Helpers.protocol = 'https'
113
- context.asset_path('main.js').should == 'https://assets.example.com/assets/main.js'
114
- context.asset_path('logo.jpg').should =~ %r(https://assets.example.com/logo.jpg\?\d+)
113
+ expect(context.asset_path('main.js')).to eq('https://assets.example.com/assets/main.js')
114
+ expect(context.asset_path('logo.jpg')).to match(%r(https://assets.example.com/logo.jpg\?\d+))
115
115
  Sprockets::Helpers.asset_host = nil
116
116
  Sprockets::Helpers.protocol = nil
117
117
  end
@@ -125,8 +125,8 @@ describe Sprockets::Helpers do
125
125
 
126
126
  Sprockets::Helpers.asset_host = 'assets.example.com'
127
127
  Sprockets::Helpers.protocol = :relative
128
- context.asset_path('main.js').should == '//assets.example.com/assets/main.js'
129
- context.asset_path('logo.jpg').should =~ %r(\A//assets.example.com/logo.jpg\?\d+)
128
+ expect(context.asset_path('main.js')).to eq('//assets.example.com/assets/main.js')
129
+ expect(context.asset_path('logo.jpg')).to match(%r(\A//assets.example.com/logo.jpg\?\d+))
130
130
  Sprockets::Helpers.asset_host = nil
131
131
  Sprockets::Helpers.protocol = nil
132
132
  end
@@ -139,9 +139,9 @@ describe Sprockets::Helpers do
139
139
  within_construct do |c|
140
140
  c.file 'output/main.js'
141
141
 
142
- context.asset_path('main.js').should == '/main.js'
142
+ expect(context.asset_path('main.js')).to eq('/main.js')
143
143
  Sprockets::Helpers.public_path = './output'
144
- context.asset_path('main.js').should =~ %r(/main.js\?\d+)
144
+ expect(context.asset_path('main.js')).to match(%r(/main.js\?\d+))
145
145
  Sprockets::Helpers.public_path = nil
146
146
  end
147
147
  end
@@ -150,31 +150,28 @@ describe Sprockets::Helpers do
150
150
  describe '#asset_path' do
151
151
  context 'with URIs' do
152
152
  it 'returns URIs untouched' do
153
- context.asset_path('https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js').should ==
154
- 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'
155
- context.asset_path('http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js').should ==
156
- 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'
157
- context.asset_path('//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js').should ==
158
- '//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'
153
+ expect(context.asset_path('https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')).to eq('https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')
154
+ expect(context.asset_path('http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')).to eq('http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')
155
+ expect(context.asset_path('//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')).to eq('//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js')
159
156
  end
160
157
  end
161
158
 
162
159
  context 'with regular files' do
163
160
  it 'returns absolute paths' do
164
- context.asset_path('/path/to/file.js').should == '/path/to/file.js'
165
- context.asset_path('/path/to/file.jpg').should == '/path/to/file.jpg'
166
- context.asset_path('/path/to/file.eot?#iefix').should == '/path/to/file.eot?#iefix'
161
+ expect(context.asset_path('/path/to/file.js')).to eq('/path/to/file.js')
162
+ expect(context.asset_path('/path/to/file.jpg')).to eq('/path/to/file.jpg')
163
+ expect(context.asset_path('/path/to/file.eot?#iefix')).to eq('/path/to/file.eot?#iefix')
167
164
  end
168
165
 
169
166
  it 'appends the extension for javascripts and stylesheets' do
170
- context.asset_path('/path/to/file', :ext => 'js').should == '/path/to/file.js'
171
- context.asset_path('/path/to/file', :ext => 'css').should == '/path/to/file.css'
167
+ expect(context.asset_path('/path/to/file', :ext => 'js')).to eq('/path/to/file.js')
168
+ expect(context.asset_path('/path/to/file', :ext => 'css')).to eq('/path/to/file.css')
172
169
  end
173
170
 
174
171
  it 'prepends a base dir' do
175
- context.asset_path('main', :dir => 'stylesheets', :ext => 'css').should == '/stylesheets/main.css'
176
- context.asset_path('main', :dir => 'javascripts', :ext => 'js').should == '/javascripts/main.js'
177
- context.asset_path('logo.jpg', :dir => 'images').should == '/images/logo.jpg'
172
+ expect(context.asset_path('main', :dir => 'stylesheets', :ext => 'css')).to eq('/stylesheets/main.css')
173
+ expect(context.asset_path('main', :dir => 'javascripts', :ext => 'js')).to eq('/javascripts/main.js')
174
+ expect(context.asset_path('logo.jpg', :dir => 'images')).to eq('/images/logo.jpg')
178
175
  end
179
176
 
180
177
  it 'appends a timestamp if the file exists in the output path' do
@@ -184,10 +181,10 @@ describe Sprockets::Helpers do
184
181
  c.file 'public/font.eot'
185
182
  c.file 'public/font.svg'
186
183
 
187
- context.asset_path('main', :ext => 'js').should =~ %r(/main.js\?\d+)
188
- context.asset_path('/favicon.ico').should =~ %r(/favicon.ico\?\d+)
189
- context.asset_path('font.eot?#iefix').should =~ %r(/font.eot\?\d+#iefix)
190
- context.asset_path('font.svg#FontName').should =~ %r(/font.svg\?\d+#FontName)
184
+ expect(context.asset_path('main', :ext => 'js')).to match(%r{/main.js\?\d+})
185
+ expect(context.asset_path('/favicon.ico')).to match(%r{/favicon.ico\?\d+})
186
+ expect(context.asset_path('font.eot?#iefix')).to match(%r{/font.eot\?\d+#iefix})
187
+ expect(context.asset_path('font.svg#FontName')).to match(%r{/font.svg\?\d+#FontName})
191
188
  end
192
189
  end
193
190
  end
@@ -199,9 +196,9 @@ describe Sprockets::Helpers do
199
196
  c.file 'assets/main.js'
200
197
  c.file 'assets/main.css'
201
198
 
202
- context.asset_path('main', :ext => 'css').should == '/assets/main.css'
203
- context.asset_path('main', :ext => 'js').should == '/assets/main.js'
204
- context.asset_path('logo.jpg').should == '/assets/logo.jpg'
199
+ expect(context.asset_path('main', :ext => 'css')).to eq('/assets/main.css')
200
+ expect(context.asset_path('main', :ext => 'js')).to eq('/assets/main.js')
201
+ expect(context.asset_path('logo.jpg')).to eq('/assets/logo.jpg')
205
202
  end
206
203
  end
207
204
 
@@ -209,8 +206,8 @@ describe Sprockets::Helpers do
209
206
  within_construct do |c|
210
207
  c.file 'assets/logo.jpg'
211
208
 
212
- context.asset_path('logo.jpg').should == '/assets/logo.jpg'
213
- context.asset_path('logo.jpg', :prefix => '/images').should == '/images/logo.jpg'
209
+ expect(context.asset_path('logo.jpg')).to eq('/assets/logo.jpg')
210
+ expect(context.asset_path('logo.jpg', :prefix => '/images')).to eq('/images/logo.jpg')
214
211
  end
215
212
  end
216
213
 
@@ -220,10 +217,10 @@ describe Sprockets::Helpers do
220
217
  c.file 'assets/font.eot'
221
218
  c.file 'assets/font.svg'
222
219
 
223
- context.asset_path('main', :ext => 'js').should == '/assets/main.js'
224
- context.asset_path('main', :ext => 'js', :digest => true).should =~ %r(/assets/main-[0-9a-f]+.js)
225
- context.asset_path('font.eot?#iefix', :digest => true).should =~ %r(/assets/font-[0-9a-f]+.eot\?#iefix)
226
- context.asset_path('font.svg#FontName', :digest => true).should =~ %r(/assets/font-[0-9a-f]+.svg#FontName)
220
+ expect(context.asset_path('main', :ext => 'js')).to eq('/assets/main.js')
221
+ expect(context.asset_path('main', :ext => 'js', :digest => true)).to match(%r{/assets/main-[0-9a-f]+.js})
222
+ expect(context.asset_path('font.eot?#iefix', :digest => true)).to match(%r{/assets/font-[0-9a-f]+.eot\?#iefix})
223
+ expect(context.asset_path('font.svg#FontName', :digest => true)).to match(%r{/assets/font-[0-9a-f]+.svg#FontName})
227
224
  end
228
225
  end
229
226
 
@@ -233,9 +230,9 @@ describe Sprockets::Helpers do
233
230
  c.file 'assets/font.eot'
234
231
  c.file 'assets/font.svg'
235
232
 
236
- context.asset_path('main', :ext => 'js', :body => true).should == '/assets/main.js?body=1'
237
- context.asset_path('font.eot?#iefix', :body => true).should == '/assets/font.eot?body=1#iefix'
238
- context.asset_path('font.svg#FontName', :body => true).should == '/assets/font.svg?body=1#FontName'
233
+ expect(context.asset_path('main', :ext => 'js', :body => true)).to eq('/assets/main.js?body=1')
234
+ expect(context.asset_path('font.eot?#iefix', :body => true)).to eq('/assets/font.eot?body=1#iefix')
235
+ expect(context.asset_path('font.svg#FontName', :body => true)).to eq('/assets/font.svg?body=1#FontName')
239
236
  end
240
237
  end
241
238
  end
@@ -246,7 +243,7 @@ describe Sprockets::Helpers do
246
243
  c.file 'assets/main.js'
247
244
 
248
245
  Sprockets::Helpers.digest = true
249
- context.asset_path('main.js', :debug => true).should == '/assets/main.js'
246
+ expect(context.asset_path('main.js', :debug => true)).to eq('/assets/main.js')
250
247
  Sprockets::Helpers.digest = nil
251
248
  end
252
249
  end
@@ -256,7 +253,7 @@ describe Sprockets::Helpers do
256
253
  c.file 'assets/main.js'
257
254
 
258
255
  Sprockets::Helpers.asset_host = 'assets.example.com'
259
- context.asset_path('main.js', :debug => true).should == '/assets/main.js'
256
+ expect(context.asset_path('main.js', :debug => true)).to eq('/assets/main.js')
260
257
  Sprockets::Helpers.asset_host = nil
261
258
  end
262
259
  end
@@ -279,7 +276,7 @@ describe Sprockets::Helpers do
279
276
  end
280
277
 
281
278
  asset_file.delete
282
- context.asset_path('application.js').should =~ %r(/assets/application-[0-9a-f]+.js)
279
+ expect(context.asset_path('application.js')).to match(%r(/assets/application-[0-9a-f]+.js))
283
280
 
284
281
  Sprockets::Helpers.digest = nil
285
282
  Sprockets::Helpers.prefix = nil
@@ -301,7 +298,7 @@ describe Sprockets::Helpers do
301
298
  config.manifest = Sprockets::Manifest.new(env, manifest_file)
302
299
  end
303
300
 
304
- context.asset_path('application.js', :debug => true).should == '/assets/application.js'
301
+ expect(context.asset_path('application.js', :debug => true)).to eq('/assets/application.js')
305
302
 
306
303
  Sprockets::Helpers.digest = nil
307
304
  Sprockets::Helpers.prefix = nil
@@ -315,13 +312,13 @@ describe Sprockets::Helpers do
315
312
  describe '#javascript_path' do
316
313
  context 'with regular files' do
317
314
  it 'appends the js extension' do
318
- context.javascript_path('/path/to/file').should == '/path/to/file.js'
319
- context.javascript_path('/path/to/file.min').should == '/path/to/file.min.js'
315
+ expect(context.javascript_path('/path/to/file')).to eq('/path/to/file.js')
316
+ expect(context.javascript_path('/path/to/file.min')).to eq('/path/to/file.min.js')
320
317
  end
321
318
 
322
319
  it 'prepends the javascripts dir' do
323
- context.javascript_path('main').should == '/javascripts/main.js'
324
- context.javascript_path('main.min').should == '/javascripts/main.min.js'
320
+ expect(context.javascript_path('main')).to eq('/javascripts/main.js')
321
+ expect(context.javascript_path('main.min')).to eq('/javascripts/main.min.js')
325
322
  end
326
323
  end
327
324
  end
@@ -329,13 +326,13 @@ describe Sprockets::Helpers do
329
326
  describe '#stylesheet_path' do
330
327
  context 'with regular files' do
331
328
  it 'appends the css extension' do
332
- context.stylesheet_path('/path/to/file').should == '/path/to/file.css'
333
- context.stylesheet_path('/path/to/file.min').should == '/path/to/file.min.css'
329
+ expect(context.stylesheet_path('/path/to/file')).to eq('/path/to/file.css')
330
+ expect(context.stylesheet_path('/path/to/file.min')).to eq('/path/to/file.min.css')
334
331
  end
335
332
 
336
333
  it 'prepends the stylesheets dir' do
337
- context.stylesheet_path('main').should == '/stylesheets/main.css'
338
- context.stylesheet_path('main.min').should == '/stylesheets/main.min.css'
334
+ expect(context.stylesheet_path('main')).to eq('/stylesheets/main.css')
335
+ expect(context.stylesheet_path('main.min')).to eq('/stylesheets/main.min.css')
339
336
  end
340
337
  end
341
338
  end
@@ -343,7 +340,7 @@ describe Sprockets::Helpers do
343
340
  describe '#image_path' do
344
341
  context 'with regular files' do
345
342
  it 'prepends the images dir' do
346
- context.image_path('logo.jpg').should == '/images/logo.jpg'
343
+ expect(context.image_path('logo.jpg')).to eq('/images/logo.jpg')
347
344
  end
348
345
  end
349
346
  end
@@ -351,7 +348,7 @@ describe Sprockets::Helpers do
351
348
  describe '#font_path' do
352
349
  context 'with regular files' do
353
350
  it 'prepends the fonts dir' do
354
- context.font_path('font.ttf').should == '/fonts/font.ttf'
351
+ expect(context.font_path('font.ttf')).to eq('/fonts/font.ttf')
355
352
  end
356
353
  end
357
354
  end
@@ -359,7 +356,7 @@ describe Sprockets::Helpers do
359
356
  describe '#video_path' do
360
357
  context 'with regular files' do
361
358
  it 'prepends the videos dir' do
362
- context.video_path('video.mp4').should == '/videos/video.mp4'
359
+ expect(context.video_path('video.mp4')).to eq('/videos/video.mp4')
363
360
  end
364
361
  end
365
362
  end
@@ -367,7 +364,7 @@ describe Sprockets::Helpers do
367
364
  describe '#audio_path' do
368
365
  context 'with regular files' do
369
366
  it 'prepends the audios dir' do
370
- context.audio_path('audio.mp3').should == '/audios/audio.mp3'
367
+ expect(context.audio_path('audio.mp3')).to eq('/audios/audio.mp3')
371
368
  end
372
369
  end
373
370
  end
@@ -375,7 +372,7 @@ describe Sprockets::Helpers do
375
372
  describe '#asset_tag' do
376
373
  it 'receives block to generate tag' do
377
374
  actual = context.asset_tag('main.js') { |path| "<script src=#{path}></script>" }
378
- actual.should == '<script src=/main.js></script>'
375
+ expect(actual).to eq('<script src=/main.js></script>')
379
376
  end
380
377
 
381
378
  it 'raises when called without block' do
@@ -407,10 +404,10 @@ describe Sprockets::Helpers do
407
404
  tags = context.asset_tag('main.js', :expand => true) do |path|
408
405
  "<script src=\"#{path}\"></script>"
409
406
  end
410
- tags.split("</script>").should have(3).scripts
411
- tags.should include('<script src="/assets/main.js?body=1"></script>')
412
- tags.should include('<script src="/assets/a.js?body=1"></script>')
413
- tags.should include('<script src="/assets/b.js?body=1"></script>')
407
+ expect(tags.split('</script>')).to have(3).scripts
408
+ expect(tags).to include('<script src="/assets/main.js?body=1"></script>')
409
+ expect(tags).to include('<script src="/assets/a.js?body=1"></script>')
410
+ expect(tags).to include('<script src="/assets/b.js?body=1"></script>')
414
411
  end
415
412
  end
416
413
 
@@ -419,15 +416,15 @@ describe Sprockets::Helpers do
419
416
 
420
417
  describe '#javascript_tag' do
421
418
  it 'generates script tag' do
422
- context.javascript_tag('/main.js').should == '<script src="/main.js"></script>'
419
+ expect(context.javascript_tag('/main.js')).to eq('<script src="/main.js"></script>')
423
420
  end
424
421
 
425
422
  it 'appends extension' do
426
- context.javascript_tag('/main').should == '<script src="/main.js"></script>'
423
+ expect(context.javascript_tag('/main')).to eq('<script src="/main.js"></script>')
427
424
  end
428
425
 
429
426
  it 'prepends the javascript dir' do
430
- context.javascript_tag('main').should == '<script src="/javascripts/main.js"></script>'
427
+ expect(context.javascript_tag('main')).to eq('<script src="/javascripts/main.js"></script>')
431
428
  end
432
429
 
433
430
  describe 'when expanding' do
@@ -435,9 +432,9 @@ describe Sprockets::Helpers do
435
432
  within_construct do |construct|
436
433
  assets_layout(construct)
437
434
  tags = context.javascript_tag('main.js', :expand => true)
438
- tags.should include('<script src="/assets/main.js?body=1"></script>')
439
- tags.should include('<script src="/assets/a.js?body=1"></script>')
440
- tags.should include('<script src="/assets/b.js?body=1"></script>')
435
+ expect(tags).to include('<script src="/assets/main.js?body=1"></script>')
436
+ expect(tags).to include('<script src="/assets/a.js?body=1"></script>')
437
+ expect(tags).to include('<script src="/assets/b.js?body=1"></script>')
441
438
  end
442
439
  end
443
440
  end
@@ -445,15 +442,15 @@ describe Sprockets::Helpers do
445
442
 
446
443
  describe '#stylesheet_tag' do
447
444
  it 'generates stylesheet tag' do
448
- context.stylesheet_tag('/main.css').should == '<link rel="stylesheet" href="/main.css">'
445
+ expect(context.stylesheet_tag('/main.css')).to eq('<link rel="stylesheet" href="/main.css">')
449
446
  end
450
447
 
451
448
  it 'appends extension' do
452
- context.stylesheet_tag('/main').should == '<link rel="stylesheet" href="/main.css">'
449
+ expect(context.stylesheet_tag('/main')).to eq('<link rel="stylesheet" href="/main.css">')
453
450
  end
454
451
 
455
452
  it 'prepends the stylesheets dir' do
456
- context.stylesheet_tag('main').should == '<link rel="stylesheet" href="/stylesheets/main.css">'
453
+ expect(context.stylesheet_tag('main')).to eq('<link rel="stylesheet" href="/stylesheets/main.css">')
457
454
  end
458
455
 
459
456
  describe 'when expanding' do
@@ -461,11 +458,56 @@ describe Sprockets::Helpers do
461
458
  within_construct do |construct|
462
459
  assets_layout(construct)
463
460
  tags = context.stylesheet_tag('main.css', :expand => true)
464
- tags.should include('<link rel="stylesheet" href="/assets/main.css?body=1">')
465
- tags.should include('<link rel="stylesheet" href="/assets/a.css?body=1">')
466
- tags.should include('<link rel="stylesheet" href="/assets/b.css?body=1">')
461
+ expect(tags).to include('<link rel="stylesheet" href="/assets/main.css?body=1">')
462
+ expect(tags).to include('<link rel="stylesheet" href="/assets/a.css?body=1">')
463
+ expect(tags).to include('<link rel="stylesheet" href="/assets/b.css?body=1">')
467
464
  end
468
465
  end
469
466
  end
470
467
  end
468
+
469
+ describe 'Sinatra integration' do
470
+ it 'adds the helpers' do
471
+ app = Class.new(Sinatra::Base) do
472
+ register Sinatra::Sprockets::Helpers
473
+ end
474
+
475
+ expect(app).to include(Sprockets::Helpers)
476
+ end
477
+
478
+ it 'automatically configures' do
479
+ custom_env = Sprockets::Environment.new
480
+
481
+ app = Class.new(Sinatra::Base) do
482
+ set :sprockets, custom_env
483
+ set :assets_prefix, '/static'
484
+ set :digest_assets, true
485
+
486
+ register Sinatra::Sprockets::Helpers
487
+ end
488
+
489
+ expect(Sprockets::Helpers.environment).to be(custom_env)
490
+ expect(Sprockets::Helpers.prefix).to eq('/static')
491
+ expect(Sprockets::Helpers.digest).to be_true
492
+ end
493
+
494
+ it 'manually configures with configure method' do
495
+ custom_env = Sprockets::Environment.new
496
+
497
+ app = Class.new(Sinatra::Base) do
498
+ register Sinatra::Sprockets::Helpers
499
+
500
+ set :sprockets, custom_env
501
+ set :assets_prefix, '/static'
502
+
503
+ configure_sprockets_helpers do |helpers|
504
+ helpers.expand = true
505
+ end
506
+ end
507
+
508
+ expect(Sprockets::Helpers.environment).to be(custom_env)
509
+ expect(Sprockets::Helpers.prefix).to eq('/static')
510
+ expect(Sprockets::Helpers.expand).to be_true
511
+ end
512
+ end
471
513
  end
@@ -19,8 +19,9 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ['lib']
20
20
 
21
21
  s.add_dependency 'sprockets', '~> 2.0'
22
- s.add_development_dependency 'appraisal', '~> 0.4'
23
- s.add_development_dependency 'rspec', '~> 2.6'
22
+ s.add_development_dependency 'appraisal', '~> 0.5'
23
+ s.add_development_dependency 'rspec', '~> 2.13'
24
24
  s.add_development_dependency 'test-construct', '~> 1.2'
25
+ s.add_development_dependency 'sinatra', '~> 1.4'
25
26
  s.add_development_dependency 'rake'
26
27
  end
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: 0.9.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-08 00:00:00.000000000 Z
12
+ date: 2013-03-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sprockets
16
- requirement: &70117526611900 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,43 +21,79 @@ dependencies:
21
21
  version: '2.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70117526611900
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '2.0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: appraisal
27
- requirement: &70117526611360 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
31
36
  - !ruby/object:Gem::Version
32
- version: '0.4'
37
+ version: '0.5'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70117526611360
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.5'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rspec
38
- requirement: &70117526610900 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
42
52
  - !ruby/object:Gem::Version
43
- version: '2.6'
53
+ version: '2.13'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70117526610900
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '2.13'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: test-construct
49
- requirement: &70117526610340 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '1.2'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
50
73
  none: false
51
74
  requirements:
52
75
  - - ~>
53
76
  - !ruby/object:Gem::Version
54
77
  version: '1.2'
78
+ - !ruby/object:Gem::Dependency
79
+ name: sinatra
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '1.4'
55
86
  type: :development
56
87
  prerelease: false
57
- version_requirements: *70117526610340
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.4'
58
94
  - !ruby/object:Gem::Dependency
59
95
  name: rake
60
- requirement: &70117526609960 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
61
97
  none: false
62
98
  requirements:
63
99
  - - ! '>='
@@ -65,7 +101,12 @@ dependencies:
65
101
  version: '0'
66
102
  type: :development
67
103
  prerelease: false
68
- version_requirements: *70117526609960
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
69
110
  description: Asset path helpers for Sprockets 2.x applications
70
111
  email:
71
112
  - me@petebrowne.com
@@ -79,13 +120,18 @@ files:
79
120
  - LICENSE
80
121
  - README.md
81
122
  - Rakefile
82
- - gemfiles/sprockets-2.0.gemfile
83
- - gemfiles/sprockets-2.1.gemfile
84
- - gemfiles/sprockets-2.2.gemfile
85
- - gemfiles/sprockets-2.3.gemfile
86
- - gemfiles/sprockets-2.4.gemfile
87
- - gemfiles/sprockets-2.5.gemfile
88
- - gemfiles/sprockets-2.6.gemfile
123
+ - gemfiles/sprockets_2.0.gemfile
124
+ - gemfiles/sprockets_2.1.gemfile
125
+ - gemfiles/sprockets_2.2.gemfile
126
+ - gemfiles/sprockets_2.3.gemfile
127
+ - gemfiles/sprockets_2.4.gemfile
128
+ - gemfiles/sprockets_2.5.gemfile
129
+ - gemfiles/sprockets_2.6.gemfile
130
+ - gemfiles/sprockets_2.7.gemfile
131
+ - gemfiles/sprockets_2.8.gemfile
132
+ - gemfiles/sprockets_2.9.gemfile
133
+ - lib/sinatra/sprockets-helpers.rb
134
+ - lib/sinatra/sprockets/helpers.rb
89
135
  - lib/sprockets-helpers.rb
90
136
  - lib/sprockets/helpers.rb
91
137
  - lib/sprockets/helpers/asset_path.rb
@@ -110,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
156
  version: '0'
111
157
  segments:
112
158
  - 0
113
- hash: 2044833446584008479
159
+ hash: -4510165657637312689
114
160
  required_rubygems_version: !ruby/object:Gem::Requirement
115
161
  none: false
116
162
  requirements:
@@ -119,10 +165,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
165
  version: '0'
120
166
  segments:
121
167
  - 0
122
- hash: 2044833446584008479
168
+ hash: -4510165657637312689
123
169
  requirements: []
124
170
  rubyforge_project: sprockets-helpers
125
- rubygems_version: 1.8.11
171
+ rubygems_version: 1.8.23
126
172
  signing_key:
127
173
  specification_version: 3
128
174
  summary: Asset path helpers for Sprockets 2.x applications