sinatra-bundles 0.4.0 → 0.5.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/Gemfile +2 -2
- data/Gemfile.lock +17 -18
- data/Rakefile +0 -2
- data/VERSION +1 -1
- data/lib/sinatra/bundles/bundle.rb +4 -1
- data/lib/sinatra/bundles/helpers.rb +4 -2
- data/lib/sinatra/bundles/javascript_bundle.rb +12 -5
- data/lib/sinatra/bundles/stylesheet_bundle.rb +13 -5
- data/lib/sinatra/bundles.rb +3 -3
- data/sinatra-bundles.gemspec +72 -45
- data/spec/base_app.rb +8 -0
- data/spec/sinatra-bundles_spec.rb +75 -4
- metadata +150 -15
- data/.gitignore +0 -24
data/Gemfile
CHANGED
@@ -3,10 +3,10 @@ source 'http://rubygems.org'
|
|
3
3
|
gem 'rainpress'
|
4
4
|
gem 'packr'
|
5
5
|
gem 'rack', '>= 1.0'
|
6
|
-
gem 'sinatra', '
|
6
|
+
gem 'sinatra', '~> 1.1.0'
|
7
7
|
|
8
8
|
group :development do
|
9
|
-
gem 'rspec', '
|
9
|
+
gem 'rspec', '~> 1.3.0'
|
10
10
|
gem 'rack-test', '>= 0.5.3'
|
11
11
|
gem 'yard'
|
12
12
|
gem 'jeweler'
|
data/Gemfile.lock
CHANGED
@@ -1,33 +1,32 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
columnize (0.3.
|
5
|
-
gemcutter (0.6.1)
|
4
|
+
columnize (0.3.2)
|
6
5
|
git (1.2.5)
|
7
|
-
jeweler (1.
|
8
|
-
|
6
|
+
jeweler (1.5.1)
|
7
|
+
bundler (~> 1.0.0)
|
9
8
|
git (>= 1.2.5)
|
10
|
-
|
11
|
-
json_pure (1.4.5)
|
9
|
+
rake
|
12
10
|
linecache (0.43)
|
13
11
|
oyster (0.9.4)
|
14
12
|
packr (3.1.0)
|
15
13
|
oyster
|
16
14
|
rack (1.2.1)
|
17
|
-
rack-test (0.5.
|
15
|
+
rack-test (0.5.6)
|
18
16
|
rack (>= 1.0)
|
19
17
|
rainpress (1.0)
|
20
|
-
|
21
|
-
|
18
|
+
rake (0.8.7)
|
19
|
+
rspec (1.3.1)
|
20
|
+
ruby-debug (0.10.4)
|
22
21
|
columnize (>= 0.1)
|
23
|
-
ruby-debug-base (~> 0.10.
|
24
|
-
ruby-debug-base (0.10.
|
22
|
+
ruby-debug-base (~> 0.10.4.0)
|
23
|
+
ruby-debug-base (0.10.4)
|
25
24
|
linecache (>= 0.3)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
yard (0.
|
25
|
+
sinatra (1.1.0)
|
26
|
+
rack (~> 1.1)
|
27
|
+
tilt (~> 1.1)
|
28
|
+
tilt (1.1)
|
29
|
+
yard (0.6.2)
|
31
30
|
|
32
31
|
PLATFORMS
|
33
32
|
ruby
|
@@ -38,7 +37,7 @@ DEPENDENCIES
|
|
38
37
|
rack (>= 1.0)
|
39
38
|
rack-test (>= 0.5.3)
|
40
39
|
rainpress
|
41
|
-
rspec (
|
40
|
+
rspec (~> 1.3.0)
|
42
41
|
ruby-debug
|
43
|
-
sinatra (
|
42
|
+
sinatra (~> 1.1.0)
|
44
43
|
yard
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
@@ -7,7 +7,8 @@ module Sinatra
|
|
7
7
|
# @param [Symbol,String] bundle The bundle name
|
8
8
|
# @return [String] HTML script tag
|
9
9
|
def javascript_bundle_include_tag(bundle)
|
10
|
-
|
10
|
+
sn = request.script_name rescue nil
|
11
|
+
settings.javascript_bundles[bundle].to_html(sn)
|
11
12
|
end
|
12
13
|
|
13
14
|
# Emit a script tag for a stylesheet bundle
|
@@ -15,7 +16,8 @@ module Sinatra
|
|
15
16
|
# @param [Symbol,String] bundle The bundle name
|
16
17
|
# @return [String] HTML link tag
|
17
18
|
def stylesheet_bundle_link_tag(bundle, media = :all)
|
18
|
-
|
19
|
+
sn = request.script_name rescue nil
|
20
|
+
settings.stylesheet_bundles[bundle].to_html(media, sn)
|
19
21
|
end
|
20
22
|
end
|
21
23
|
end
|
@@ -6,12 +6,19 @@ module Sinatra
|
|
6
6
|
class JavascriptBundle < Bundle
|
7
7
|
# Generate the HTML tag for the script file
|
8
8
|
#
|
9
|
-
# @param [String]
|
9
|
+
# @param [String] script_name The SCRIPT_NAME prefix, since we can't access it otherwise
|
10
10
|
# @return [String] The HTML that can be inserted into the doc
|
11
|
-
def to_html(
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
def to_html(script_name = nil)
|
12
|
+
"<script type='text/javascript' src='#{to_path(script_name)}'></script>"
|
13
|
+
end
|
14
|
+
|
15
|
+
# Generate the path for the script file
|
16
|
+
#
|
17
|
+
# @param [String] script_name The SCRIPT_NAME prefix, since we can't access it otherwise
|
18
|
+
# @return [String] The path
|
19
|
+
def to_path(script_name = nil)
|
20
|
+
prefix = "#{script_name}/#{@app.javascripts}/bundles"
|
21
|
+
@app.stamp_bundles ? "#{prefix}/#{key}/#{stamp}.js" : "#{prefix}/#{key}.js"
|
15
22
|
end
|
16
23
|
|
17
24
|
# The root of these bundles, for path purposes
|
@@ -7,12 +7,20 @@ module Sinatra
|
|
7
7
|
# Generate the HTML tag for the stylesheet
|
8
8
|
#
|
9
9
|
# @param [String] name The name of a bundle
|
10
|
+
# @param [String] script_name The SCRIPT_NAME prefix, since we can't access it otherwise
|
10
11
|
# @return [String] The HTML that can be inserted into the doc
|
11
|
-
def to_html(
|
12
|
-
media = media.join(', ') if media.is_a?
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
def to_html(media = :all, script_name = nil)
|
13
|
+
media = media.join(', ') if media.is_a?(Array)
|
14
|
+
"<link type='text/css' href='#{to_path(script_name)}' rel='stylesheet' media='#{media}' />"
|
15
|
+
end
|
16
|
+
|
17
|
+
# Generate the path for the CSS file
|
18
|
+
#
|
19
|
+
# @param [String] script_name The SCRIPT_NAME prefix, since we can't access it otherwise
|
20
|
+
# @return [String] The path
|
21
|
+
def to_path(script_name = nil)
|
22
|
+
prefix = "#{script_name}/#{@app.stylesheets}/bundles"
|
23
|
+
@app.stamp_bundles ? "#{prefix}/#{key}/#{stamp}.css" : "#{prefix}/#{key}.css"
|
16
24
|
end
|
17
25
|
|
18
26
|
# The root of these bundles, for path purposes
|
data/lib/sinatra/bundles.rb
CHANGED
@@ -13,7 +13,7 @@ module Sinatra
|
|
13
13
|
# @param [Array(String)] files The list of filenames, without extension,
|
14
14
|
# assumed to be in the public directory, under 'javascripts'
|
15
15
|
def javascript_bundle(key, files = nil)
|
16
|
-
javascript_bundles[key] = JavascriptBundle.new(self, files)
|
16
|
+
javascript_bundles[key] = JavascriptBundle.new(self, key.to_s, files)
|
17
17
|
end
|
18
18
|
|
19
19
|
# Set a CSS bundle
|
@@ -22,7 +22,7 @@ module Sinatra
|
|
22
22
|
# @param [Array(String)] files The list of filenames, without extension,
|
23
23
|
# assumed to be in the public directory, under 'stylesheets'
|
24
24
|
def stylesheet_bundle(key, files = nil)
|
25
|
-
stylesheet_bundles[key] = StylesheetBundle.new(self, files)
|
25
|
+
stylesheet_bundles[key] = StylesheetBundle.new(self, key.to_s, files)
|
26
26
|
end
|
27
27
|
|
28
28
|
def self.registered(app)
|
@@ -60,7 +60,7 @@ module Sinatra
|
|
60
60
|
end
|
61
61
|
|
62
62
|
app.get(%r{/#{Regexp.quote(app.javascripts)}/bundles/(\w+)(?:/(\d+))?\.js}) do |bundle, stamp| # Don't really care about the stamp.
|
63
|
-
content_type('text/javascript
|
63
|
+
content_type('text/javascript')
|
64
64
|
headers['Vary'] = 'Accept-Encoding'
|
65
65
|
if settings.cache_bundles
|
66
66
|
expires(settings.bundle_cache_time, :public, :must_revalidate)
|
data/sinatra-bundles.gemspec
CHANGED
@@ -1,65 +1,65 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{sinatra-bundles}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.5.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Daniel Huckstep"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-11-17}
|
13
13
|
s.description = %q{Bundle CSS and Javascript assets to a single file, compress, and cache them for snappier web experiences.}
|
14
14
|
s.email = %q{darkhelmet@darkhelmetlive.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.md"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
21
|
+
".rvmrc",
|
22
|
+
"Gemfile",
|
23
|
+
"Gemfile.lock",
|
24
|
+
"LICENSE",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"lib/sinatra/bundles.rb",
|
29
|
+
"lib/sinatra/bundles/bundle.rb",
|
30
|
+
"lib/sinatra/bundles/helpers.rb",
|
31
|
+
"lib/sinatra/bundles/javascript_bundle.rb",
|
32
|
+
"lib/sinatra/bundles/stylesheet_bundle.rb",
|
33
|
+
"sinatra-bundles.gemspec",
|
34
|
+
"spec/app.rb",
|
35
|
+
"spec/base_app.rb",
|
36
|
+
"spec/custom_app.rb",
|
37
|
+
"spec/extension_app.rb",
|
38
|
+
"spec/other_public/css/test.css",
|
39
|
+
"spec/other_public/javascripts/test.js",
|
40
|
+
"spec/production_app.rb",
|
41
|
+
"spec/public/javascripts/eval.js",
|
42
|
+
"spec/public/javascripts/splat/splat.js",
|
43
|
+
"spec/public/javascripts/test1.js",
|
44
|
+
"spec/public/javascripts/test2.js",
|
45
|
+
"spec/public/stylesheets/test1.css",
|
46
|
+
"spec/public/stylesheets/test2.css",
|
47
|
+
"spec/sinatra-bundles_spec.rb",
|
48
|
+
"spec/spec.opts",
|
49
|
+
"spec/spec_helper.rb"
|
50
50
|
]
|
51
51
|
s.homepage = %q{http://github.com/darkhelmet/sinatra-bundles}
|
52
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
53
52
|
s.require_paths = ["lib"]
|
54
53
|
s.rubygems_version = %q{1.3.7}
|
55
54
|
s.summary = %q{Easy asset bundling for sinatra}
|
56
55
|
s.test_files = [
|
57
56
|
"spec/app.rb",
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
57
|
+
"spec/base_app.rb",
|
58
|
+
"spec/custom_app.rb",
|
59
|
+
"spec/extension_app.rb",
|
60
|
+
"spec/production_app.rb",
|
61
|
+
"spec/sinatra-bundles_spec.rb",
|
62
|
+
"spec/spec_helper.rb"
|
63
63
|
]
|
64
64
|
|
65
65
|
if s.respond_to? :specification_version then
|
@@ -70,8 +70,17 @@ Gem::Specification.new do |s|
|
|
70
70
|
s.add_runtime_dependency(%q<rainpress>, [">= 0"])
|
71
71
|
s.add_runtime_dependency(%q<packr>, [">= 0"])
|
72
72
|
s.add_runtime_dependency(%q<rack>, [">= 1.0"])
|
73
|
-
s.add_runtime_dependency(%q<sinatra>, ["
|
74
|
-
s.add_development_dependency(%q<rspec>, ["
|
73
|
+
s.add_runtime_dependency(%q<sinatra>, ["~> 1.1.0"])
|
74
|
+
s.add_development_dependency(%q<rspec>, ["~> 1.3.0"])
|
75
|
+
s.add_development_dependency(%q<rack-test>, [">= 0.5.3"])
|
76
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
77
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
78
|
+
s.add_development_dependency(%q<ruby-debug>, [">= 0"])
|
79
|
+
s.add_runtime_dependency(%q<rainpress>, [">= 0"])
|
80
|
+
s.add_runtime_dependency(%q<packr>, [">= 0"])
|
81
|
+
s.add_runtime_dependency(%q<rack>, [">= 1.0"])
|
82
|
+
s.add_runtime_dependency(%q<sinatra>, ["~> 1.1.0"])
|
83
|
+
s.add_development_dependency(%q<rspec>, ["~> 1.3.0"])
|
75
84
|
s.add_development_dependency(%q<rack-test>, [">= 0.5.3"])
|
76
85
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
77
86
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
@@ -80,8 +89,17 @@ Gem::Specification.new do |s|
|
|
80
89
|
s.add_dependency(%q<rainpress>, [">= 0"])
|
81
90
|
s.add_dependency(%q<packr>, [">= 0"])
|
82
91
|
s.add_dependency(%q<rack>, [">= 1.0"])
|
83
|
-
s.add_dependency(%q<sinatra>, ["
|
84
|
-
s.add_dependency(%q<rspec>, ["
|
92
|
+
s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
|
93
|
+
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
94
|
+
s.add_dependency(%q<rack-test>, [">= 0.5.3"])
|
95
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
96
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
97
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
98
|
+
s.add_dependency(%q<rainpress>, [">= 0"])
|
99
|
+
s.add_dependency(%q<packr>, [">= 0"])
|
100
|
+
s.add_dependency(%q<rack>, [">= 1.0"])
|
101
|
+
s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
|
102
|
+
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
85
103
|
s.add_dependency(%q<rack-test>, [">= 0.5.3"])
|
86
104
|
s.add_dependency(%q<yard>, [">= 0"])
|
87
105
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
@@ -91,8 +109,17 @@ Gem::Specification.new do |s|
|
|
91
109
|
s.add_dependency(%q<rainpress>, [">= 0"])
|
92
110
|
s.add_dependency(%q<packr>, [">= 0"])
|
93
111
|
s.add_dependency(%q<rack>, [">= 1.0"])
|
94
|
-
s.add_dependency(%q<sinatra>, ["
|
95
|
-
s.add_dependency(%q<rspec>, ["
|
112
|
+
s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
|
113
|
+
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
114
|
+
s.add_dependency(%q<rack-test>, [">= 0.5.3"])
|
115
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
116
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
117
|
+
s.add_dependency(%q<ruby-debug>, [">= 0"])
|
118
|
+
s.add_dependency(%q<rainpress>, [">= 0"])
|
119
|
+
s.add_dependency(%q<packr>, [">= 0"])
|
120
|
+
s.add_dependency(%q<rack>, [">= 1.0"])
|
121
|
+
s.add_dependency(%q<sinatra>, ["~> 1.1.0"])
|
122
|
+
s.add_dependency(%q<rspec>, ["~> 1.3.0"])
|
96
123
|
s.add_dependency(%q<rack-test>, [">= 0.5.3"])
|
97
124
|
s.add_dependency(%q<yard>, [">= 0"])
|
98
125
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
data/spec/base_app.rb
ADDED
@@ -4,6 +4,7 @@ require 'app'
|
|
4
4
|
require 'production_app'
|
5
5
|
require 'custom_app'
|
6
6
|
require 'extension_app'
|
7
|
+
require 'base_app'
|
7
8
|
|
8
9
|
describe 'sinatra-bundles' do
|
9
10
|
def app(env = :test)
|
@@ -86,14 +87,14 @@ describe 'sinatra-bundles' do
|
|
86
87
|
|
87
88
|
it 'should create a tag without a stamp if stamps are disabled' do
|
88
89
|
app.new.instance_eval do
|
89
|
-
|
90
|
+
settings.disable(:stamp_bundles)
|
90
91
|
javascript_bundle_include_tag(:test)
|
91
92
|
end.should == "<script type='text/javascript' src='/javascripts/bundles/test.js'></script>"
|
92
93
|
end
|
93
94
|
|
94
95
|
it 'should create cusomized tag if path is CUSTOM' do
|
95
96
|
app(:custom).new.instance_eval do
|
96
|
-
|
97
|
+
settings.disable(:stamp_bundles)
|
97
98
|
javascript_bundle_include_tag(:test)
|
98
99
|
end.should == "<script type='text/javascript' src='/s/js/bundles/test.js'></script>"
|
99
100
|
end
|
@@ -109,6 +110,7 @@ describe 'sinatra-bundles' do
|
|
109
110
|
# Bogus stamp
|
110
111
|
get '/javascripts/bundles/test/987654.js'
|
111
112
|
last_response.should be_ok
|
113
|
+
last_response.headers['Content-Type'].should == 'text/javascript;charset=utf-8'
|
112
114
|
end
|
113
115
|
|
114
116
|
it 'should concat files in order with newlines including one at the end' do
|
@@ -183,6 +185,40 @@ describe 'sinatra-bundles' do
|
|
183
185
|
last_response.should be_ok
|
184
186
|
last_response.body.should == "alert('foo');\n"
|
185
187
|
end
|
188
|
+
|
189
|
+
it 'should return a path' do
|
190
|
+
app.new.instance_eval do
|
191
|
+
settings.disable(:stamp_bundles)
|
192
|
+
settings.javascript_bundles[:test].to_path
|
193
|
+
end.should == '/javascripts/bundles/test.js'
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'should respect SCRIPT_NAME' do
|
197
|
+
class JsMountedApp < BaseApp
|
198
|
+
disable(:stamp_bundles)
|
199
|
+
javascript_bundle(:all)
|
200
|
+
|
201
|
+
get '/:bundle' do |bundle|
|
202
|
+
settings.javascript_bundles[bundle.to_sym].to_path(request.script_name)
|
203
|
+
end
|
204
|
+
|
205
|
+
get '/:bundle/html' do |bundle|
|
206
|
+
settings.javascript_bundles[bundle.to_sym].to_html(request.script_name)
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
def app
|
211
|
+
Rack::URLMap.new('/test' => JsMountedApp)
|
212
|
+
end
|
213
|
+
|
214
|
+
get '/test/all'
|
215
|
+
last_response.should be_ok
|
216
|
+
last_response.body.should == '/test/javascripts/bundles/all.js'
|
217
|
+
|
218
|
+
get '/test/all/html'
|
219
|
+
last_response.should be_ok
|
220
|
+
last_response.body.should include("'/test/javascripts/bundles/all.js'")
|
221
|
+
end
|
186
222
|
end
|
187
223
|
|
188
224
|
context 'stylesheet bundles' do
|
@@ -194,14 +230,14 @@ describe 'sinatra-bundles' do
|
|
194
230
|
|
195
231
|
it 'should create a tag without a stamp if stamps are disabled' do
|
196
232
|
app.new.instance_eval do
|
197
|
-
|
233
|
+
settings.disable(:stamp_bundles)
|
198
234
|
stylesheet_bundle_link_tag(:test)
|
199
235
|
end.should == "<link type='text/css' href='/stylesheets/bundles/test.css' rel='stylesheet' media='all' />"
|
200
236
|
end
|
201
237
|
|
202
238
|
it 'should create a tag without a stamp if stamps are disabled CUSTOM' do
|
203
239
|
app(:custom).new.instance_eval do
|
204
|
-
|
240
|
+
settings.disable(:stamp_bundles)
|
205
241
|
stylesheet_bundle_link_tag(:test)
|
206
242
|
end.should == "<link type='text/css' href='/s/css/bundles/test.css' rel='stylesheet' media='all' />"
|
207
243
|
end
|
@@ -227,6 +263,7 @@ describe 'sinatra-bundles' do
|
|
227
263
|
it 'should serve bundles' do
|
228
264
|
get "/stylesheets/bundles/test.css"
|
229
265
|
last_response.should be_ok
|
266
|
+
last_response.headers['Content-Type'].should == 'text/css;charset=utf-8'
|
230
267
|
end
|
231
268
|
|
232
269
|
it 'should concat files in order with newlines including one at the end' do
|
@@ -278,5 +315,39 @@ describe 'sinatra-bundles' do
|
|
278
315
|
last_response.should be_ok
|
279
316
|
last_response.body.should == "#test {\n color: white;\n}\n"
|
280
317
|
end
|
318
|
+
|
319
|
+
it 'should return a path' do
|
320
|
+
app.new.instance_eval do
|
321
|
+
settings.disable(:stamp_bundles)
|
322
|
+
settings.stylesheet_bundles[:test].to_path
|
323
|
+
end.should == '/stylesheets/bundles/test.css'
|
324
|
+
end
|
325
|
+
|
326
|
+
it 'should respect SCRIPT_NAME' do
|
327
|
+
class StyleMountedApp < BaseApp
|
328
|
+
disable(:stamp_bundles)
|
329
|
+
stylesheet_bundle(:all)
|
330
|
+
|
331
|
+
get '/:bundle' do |bundle|
|
332
|
+
settings.stylesheet_bundles[bundle.to_sym].to_path(request.script_name)
|
333
|
+
end
|
334
|
+
|
335
|
+
get '/:bundle/html' do |bundle|
|
336
|
+
settings.stylesheet_bundles[bundle.to_sym].to_html('all', request.script_name)
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
340
|
+
def app
|
341
|
+
Rack::URLMap.new('/test' => StyleMountedApp)
|
342
|
+
end
|
343
|
+
|
344
|
+
get '/test/all'
|
345
|
+
last_response.should be_ok
|
346
|
+
last_response.body.should == '/test/stylesheets/bundles/all.css'
|
347
|
+
|
348
|
+
get '/test/all/html'
|
349
|
+
last_response.should be_ok
|
350
|
+
last_response.body.should include("'/test/stylesheets/bundles/all.css'")
|
351
|
+
end
|
281
352
|
end
|
282
353
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-bundles
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 5
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Daniel Huckstep
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-11-17 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -68,13 +68,14 @@ dependencies:
|
|
68
68
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
69
69
|
none: false
|
70
70
|
requirements:
|
71
|
-
- -
|
71
|
+
- - ~>
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
hash:
|
73
|
+
hash: 19
|
74
74
|
segments:
|
75
75
|
- 1
|
76
|
+
- 1
|
76
77
|
- 0
|
77
|
-
version:
|
78
|
+
version: 1.1.0
|
78
79
|
requirement: *id004
|
79
80
|
- !ruby/object:Gem::Dependency
|
80
81
|
prerelease: false
|
@@ -83,14 +84,14 @@ dependencies:
|
|
83
84
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
85
|
none: false
|
85
86
|
requirements:
|
86
|
-
- -
|
87
|
+
- - ~>
|
87
88
|
- !ruby/object:Gem::Version
|
88
|
-
hash:
|
89
|
+
hash: 27
|
89
90
|
segments:
|
90
91
|
- 1
|
91
|
-
-
|
92
|
-
-
|
93
|
-
version: 1.
|
92
|
+
- 3
|
93
|
+
- 0
|
94
|
+
version: 1.3.0
|
94
95
|
requirement: *id005
|
95
96
|
- !ruby/object:Gem::Dependency
|
96
97
|
prerelease: false
|
@@ -150,6 +151,139 @@ dependencies:
|
|
150
151
|
- 0
|
151
152
|
version: "0"
|
152
153
|
requirement: *id009
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
prerelease: false
|
156
|
+
type: :runtime
|
157
|
+
name: rainpress
|
158
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
hash: 3
|
164
|
+
segments:
|
165
|
+
- 0
|
166
|
+
version: "0"
|
167
|
+
requirement: *id010
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
prerelease: false
|
170
|
+
type: :runtime
|
171
|
+
name: packr
|
172
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
hash: 3
|
178
|
+
segments:
|
179
|
+
- 0
|
180
|
+
version: "0"
|
181
|
+
requirement: *id011
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
prerelease: false
|
184
|
+
type: :runtime
|
185
|
+
name: rack
|
186
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
187
|
+
none: false
|
188
|
+
requirements:
|
189
|
+
- - ">="
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
hash: 15
|
192
|
+
segments:
|
193
|
+
- 1
|
194
|
+
- 0
|
195
|
+
version: "1.0"
|
196
|
+
requirement: *id012
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
prerelease: false
|
199
|
+
type: :runtime
|
200
|
+
name: sinatra
|
201
|
+
version_requirements: &id013 !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
203
|
+
requirements:
|
204
|
+
- - ~>
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
hash: 19
|
207
|
+
segments:
|
208
|
+
- 1
|
209
|
+
- 1
|
210
|
+
- 0
|
211
|
+
version: 1.1.0
|
212
|
+
requirement: *id013
|
213
|
+
- !ruby/object:Gem::Dependency
|
214
|
+
prerelease: false
|
215
|
+
type: :development
|
216
|
+
name: rspec
|
217
|
+
version_requirements: &id014 !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
219
|
+
requirements:
|
220
|
+
- - ~>
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
hash: 27
|
223
|
+
segments:
|
224
|
+
- 1
|
225
|
+
- 3
|
226
|
+
- 0
|
227
|
+
version: 1.3.0
|
228
|
+
requirement: *id014
|
229
|
+
- !ruby/object:Gem::Dependency
|
230
|
+
prerelease: false
|
231
|
+
type: :development
|
232
|
+
name: rack-test
|
233
|
+
version_requirements: &id015 !ruby/object:Gem::Requirement
|
234
|
+
none: false
|
235
|
+
requirements:
|
236
|
+
- - ">="
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
hash: 13
|
239
|
+
segments:
|
240
|
+
- 0
|
241
|
+
- 5
|
242
|
+
- 3
|
243
|
+
version: 0.5.3
|
244
|
+
requirement: *id015
|
245
|
+
- !ruby/object:Gem::Dependency
|
246
|
+
prerelease: false
|
247
|
+
type: :development
|
248
|
+
name: yard
|
249
|
+
version_requirements: &id016 !ruby/object:Gem::Requirement
|
250
|
+
none: false
|
251
|
+
requirements:
|
252
|
+
- - ">="
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
hash: 3
|
255
|
+
segments:
|
256
|
+
- 0
|
257
|
+
version: "0"
|
258
|
+
requirement: *id016
|
259
|
+
- !ruby/object:Gem::Dependency
|
260
|
+
prerelease: false
|
261
|
+
type: :development
|
262
|
+
name: jeweler
|
263
|
+
version_requirements: &id017 !ruby/object:Gem::Requirement
|
264
|
+
none: false
|
265
|
+
requirements:
|
266
|
+
- - ">="
|
267
|
+
- !ruby/object:Gem::Version
|
268
|
+
hash: 3
|
269
|
+
segments:
|
270
|
+
- 0
|
271
|
+
version: "0"
|
272
|
+
requirement: *id017
|
273
|
+
- !ruby/object:Gem::Dependency
|
274
|
+
prerelease: false
|
275
|
+
type: :development
|
276
|
+
name: ruby-debug
|
277
|
+
version_requirements: &id018 !ruby/object:Gem::Requirement
|
278
|
+
none: false
|
279
|
+
requirements:
|
280
|
+
- - ">="
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
hash: 3
|
283
|
+
segments:
|
284
|
+
- 0
|
285
|
+
version: "0"
|
286
|
+
requirement: *id018
|
153
287
|
description: Bundle CSS and Javascript assets to a single file, compress, and cache them for snappier web experiences.
|
154
288
|
email: darkhelmet@darkhelmetlive.com
|
155
289
|
executables: []
|
@@ -161,7 +295,6 @@ extra_rdoc_files:
|
|
161
295
|
- README.md
|
162
296
|
files:
|
163
297
|
- .document
|
164
|
-
- .gitignore
|
165
298
|
- .rvmrc
|
166
299
|
- Gemfile
|
167
300
|
- Gemfile.lock
|
@@ -176,6 +309,7 @@ files:
|
|
176
309
|
- lib/sinatra/bundles/stylesheet_bundle.rb
|
177
310
|
- sinatra-bundles.gemspec
|
178
311
|
- spec/app.rb
|
312
|
+
- spec/base_app.rb
|
179
313
|
- spec/custom_app.rb
|
180
314
|
- spec/extension_app.rb
|
181
315
|
- spec/other_public/css/test.css
|
@@ -195,8 +329,8 @@ homepage: http://github.com/darkhelmet/sinatra-bundles
|
|
195
329
|
licenses: []
|
196
330
|
|
197
331
|
post_install_message:
|
198
|
-
rdoc_options:
|
199
|
-
|
332
|
+
rdoc_options: []
|
333
|
+
|
200
334
|
require_paths:
|
201
335
|
- lib
|
202
336
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -226,6 +360,7 @@ specification_version: 3
|
|
226
360
|
summary: Easy asset bundling for sinatra
|
227
361
|
test_files:
|
228
362
|
- spec/app.rb
|
363
|
+
- spec/base_app.rb
|
229
364
|
- spec/custom_app.rb
|
230
365
|
- spec/extension_app.rb
|
231
366
|
- spec/production_app.rb
|
data/.gitignore
DELETED