dynamic_assets 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -29,11 +29,13 @@ module DynamicAssetsHelpers
29
29
  protected
30
30
 
31
31
  def asset_path(asset_ref)
32
- name = asset_ref.name
32
+ path_args = []
33
+ path_args << asset_ref.name
34
+ path_args << { :timestamp => asset_ref.mtime.to_i.to_s } if asset_ref.mtime.present?
33
35
 
34
36
  case asset_ref
35
- when DynamicAssets::StylesheetReference then stylesheet_asset_path name
36
- when DynamicAssets::JavascriptReference then javascript_asset_path name
37
+ when DynamicAssets::StylesheetReference then stylesheet_asset_path *path_args
38
+ when DynamicAssets::JavascriptReference then javascript_asset_path *path_args
37
39
  else raise "Unknown asset type: #{asset_ref}"
38
40
  end
39
41
  end
@@ -41,10 +43,8 @@ module DynamicAssetsHelpers
41
43
  def asset_url(asset_ref)
42
44
  path = asset_path asset_ref
43
45
  path = "/" + path unless path[0,1] == "/"
44
- path << "?#{asset_ref.mtime.to_i.to_s}" if asset_ref.mtime.present?
45
46
 
46
47
  host = compute_asset_host path
47
-
48
48
  host ? "#{host}#{path}" : path
49
49
  end
50
50
 
data/config/routes.rb CHANGED
@@ -1,12 +1,20 @@
1
1
 
2
2
  Rails.application.routes.draw do
3
3
 
4
- match '/assets/javascripts/:name.js' => 'assets#show_javascript', :as => :javascript_asset,
5
- :format => "js", # Important for action-caching non-HTML resources
6
- :constraints => { :name => /[^ ]+/ } # By default, segments can't have dots. We allow all but space.
4
+ match '/assets/javascripts(/:timestamp)/:name.:format' => 'assets#show_javascript',
5
+ :as => :javascript_asset,
6
+ :format => "js", # Important for action-caching non-HTML resources
7
+ :constraints => {
8
+ :name => /[^ ]+/, # By default, route segments can't have dots. We allow all but space.
9
+ :timestamp => /\d+/
10
+ }
7
11
 
8
- match '/assets/stylesheets/:name.css' => 'assets#show_stylesheet', :as => :stylesheet_asset,
9
- :format => "css", # Important for action-caching non-HTML resources
10
- :constraints => { :name => /[^ ]+/ } # By default, segments can't have dots. We allow all but space.
12
+ match '/assets/stylesheets(/:timestamp)/:name.:format' => 'assets#show_stylesheet',
13
+ :as => :stylesheet_asset,
14
+ :format => "css", # Important for action-caching non-HTML resources
15
+ :constraints => { # By default, segments can't have dots. We allow all but space.
16
+ :name => /[^ ]+/,
17
+ :timestamp => /\d+/
18
+ }
11
19
 
12
20
  end
@@ -57,9 +57,9 @@ describe DynamicAssetsHelpers do
57
57
  before { helper.config.asset_host.should be_nil }
58
58
 
59
59
  it "is three tags with hrefs derived from the asset name and mtime" do
60
- should contain_string 'href="/assets/stylesheets/a.css?123"'
61
- should contain_string 'href="/assets/stylesheets/b.css?456"'
62
- should contain_string 'href="/assets/stylesheets/c.css?789"'
60
+ should contain_string 'href="/assets/stylesheets/123/a.css"'
61
+ should contain_string 'href="/assets/stylesheets/456/b.css"'
62
+ should contain_string 'href="/assets/stylesheets/789/c.css"'
63
63
  end
64
64
  end
65
65
 
@@ -67,9 +67,9 @@ describe DynamicAssetsHelpers do
67
67
  before { helper.config.stub(:asset_host).and_return "http://a.example.com" }
68
68
 
69
69
  it "is three tags with hrefs whose host is a.example.com" do
70
- should contain_string 'href="http://a.example.com/assets/stylesheets/a.css?123"'
71
- should contain_string 'href="http://a.example.com/assets/stylesheets/b.css?456"'
72
- should contain_string 'href="http://a.example.com/assets/stylesheets/c.css?789"'
70
+ should contain_string 'href="http://a.example.com/assets/stylesheets/123/a.css"'
71
+ should contain_string 'href="http://a.example.com/assets/stylesheets/456/b.css"'
72
+ should contain_string 'href="http://a.example.com/assets/stylesheets/789/c.css"'
73
73
  end
74
74
  end
75
75
 
@@ -77,9 +77,9 @@ describe DynamicAssetsHelpers do
77
77
  before { helper.config.stub(:asset_host).and_return "http://a%d.example.com" }
78
78
 
79
79
  it "is three tags with hrefs whose host is a[0-3].example.com" do
80
- should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/a.css\?123"/
81
- should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/b.css\?456"/
82
- should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/c.css\?789"/
80
+ should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/123\/a.css"/
81
+ should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/456\/b.css"/
82
+ should =~ /href="http:\/\/a[0-3].example.com\/assets\/stylesheets\/789\/c.css"/
83
83
  end
84
84
  end
85
85
  end
@@ -132,9 +132,9 @@ describe DynamicAssetsHelpers do
132
132
  before { helper.config.asset_host.should be_nil }
133
133
 
134
134
  it "is three tags with srcs derived from the asset name and mtime" do
135
- should contain_string 'src="/assets/javascripts/a.js?123"'
136
- should contain_string 'src="/assets/javascripts/b.js?456"'
137
- should contain_string 'src="/assets/javascripts/c.js?789"'
135
+ should contain_string 'src="/assets/javascripts/123/a.js"'
136
+ should contain_string 'src="/assets/javascripts/456/b.js"'
137
+ should contain_string 'src="/assets/javascripts/789/c.js"'
138
138
  end
139
139
  end
140
140
 
@@ -142,9 +142,9 @@ describe DynamicAssetsHelpers do
142
142
  before { helper.config.stub(:asset_host).and_return "http://a.example.com" }
143
143
 
144
144
  it "is three tags with srcs whose host is a.example.com" do
145
- should contain_string 'src="http://a.example.com/assets/javascripts/a.js?123"'
146
- should contain_string 'src="http://a.example.com/assets/javascripts/b.js?456"'
147
- should contain_string 'src="http://a.example.com/assets/javascripts/c.js?789"'
145
+ should contain_string 'src="http://a.example.com/assets/javascripts/123/a.js"'
146
+ should contain_string 'src="http://a.example.com/assets/javascripts/456/b.js"'
147
+ should contain_string 'src="http://a.example.com/assets/javascripts/789/c.js"'
148
148
  end
149
149
  end
150
150
 
@@ -152,9 +152,9 @@ describe DynamicAssetsHelpers do
152
152
  before { helper.config.stub(:asset_host).and_return "http://a%d.example.com" }
153
153
 
154
154
  it "is three tags with srcs whose host is a[0-3].example.com" do
155
- should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/a.js\?123"/
156
- should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/b.js\?456"/
157
- should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/c.js\?789"/
155
+ should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/123\/a.js"/
156
+ should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/456\/b.js"/
157
+ should =~ /src="http:\/\/a[0-3].example.com\/assets\/javascripts\/789\/c.js"/
158
158
  end
159
159
  end
160
160
  end
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,7 @@ ENV["RAILS_ENV"] ||= 'test'
2
2
 
3
3
  require 'dummy_rails_app/config/environment'
4
4
 
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
5
6
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
7
8
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_assets
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease: false
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
  - Robert Davis
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-15 00:00:00 -05:00
18
+ date: 2011-04-27 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency