sinatra-assetpack 0.1.3 → 0.1.4
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.lock +4 -4
- data/HISTORY.md +9 -0
- data/README.md +3 -2
- data/examples/basic/app.rb +12 -1
- data/lib/sinatra/assetpack/css.rb +1 -1
- data/lib/sinatra/assetpack/helpers.rb +3 -1
- data/lib/sinatra/assetpack/html_helpers.rb +12 -0
- data/lib/sinatra/assetpack/options.rb +1 -0
- data/lib/sinatra/assetpack/package.rb +4 -2
- data/lib/sinatra/assetpack/version.rb +1 -1
- data/sinatra-assetpack.gemspec +1 -1
- data/test/glob_test.rb +3 -0
- data/test/redundant_test.rb +1 -0
- data/test/test_helper.rb +2 -0
- metadata +6 -6
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sinatra-assetpack (0.1.
|
4
|
+
sinatra-assetpack (0.1.3)
|
5
5
|
jsmin
|
6
6
|
rack-test
|
7
7
|
sinatra
|
@@ -29,9 +29,9 @@ GEM
|
|
29
29
|
metaclass (0.0.1)
|
30
30
|
mocha (0.13.2)
|
31
31
|
metaclass (~> 0.0.1)
|
32
|
-
multi_json (1.
|
32
|
+
multi_json (1.6.0)
|
33
33
|
open4 (1.3.0)
|
34
|
-
rack (1.5.
|
34
|
+
rack (1.5.2)
|
35
35
|
rack-protection (1.3.2)
|
36
36
|
rack
|
37
37
|
rack-test (0.6.2)
|
@@ -66,6 +66,6 @@ DEPENDENCIES
|
|
66
66
|
rake
|
67
67
|
sass
|
68
68
|
sinatra-assetpack!
|
69
|
-
stylus
|
69
|
+
stylus (< 0.7.1)
|
70
70
|
uglifier
|
71
71
|
yui-compressor
|
data/HISTORY.md
CHANGED
data/README.md
CHANGED
@@ -2,9 +2,10 @@
|
|
2
2
|
|
3
3
|
> Package your assets transparently in Sinatra.
|
4
4
|
|
5
|
-
[](https://travis-ci.org/rstacruz/sinatra-assetpack)
|
5
|
+
[](https://travis-ci.org/rstacruz/sinatra-assetpack)
|
6
|
+
[](http://badge.fury.io/rb/sinatra-assetpack)
|
6
7
|
[](https://gemnasium.com/rstacruz/sinatra-assetpack)
|
7
|
-
[](https://codeclimate.com/github/rstacruz/sinatra-assetpack)
|
8
9
|
|
9
10
|
How it works
|
10
11
|
------------
|
data/examples/basic/app.rb
CHANGED
@@ -26,7 +26,18 @@ class App < Sinatra::Base
|
|
26
26
|
'/css/more/*.css'
|
27
27
|
]
|
28
28
|
|
29
|
-
prebuild
|
29
|
+
prebuild false
|
30
|
+
|
31
|
+
# Can set this as an environment variable like "HOST" or "CDN_HOST"
|
32
|
+
# This will add the domain name to the beginning of compiled assets
|
33
|
+
# Useful if you need to serve production assets from a CDN
|
34
|
+
asset_hosts [
|
35
|
+
'//cdn-0.example.org',
|
36
|
+
'//cdn-1.example.org',
|
37
|
+
'//cdn-2.example.org',
|
38
|
+
'//cdn-3.example.org'
|
39
|
+
]
|
40
|
+
|
30
41
|
end
|
31
42
|
|
32
43
|
get '/' do
|
@@ -15,7 +15,9 @@ module Sinatra
|
|
15
15
|
local = settings.assets.local_file_for src
|
16
16
|
if local
|
17
17
|
i = Image[local]
|
18
|
-
|
18
|
+
|
19
|
+
attrs[:src] = HtmlHelpers.get_file_uri(src, settings.assets)
|
20
|
+
|
19
21
|
if i.dimensions?
|
20
22
|
attrs[:width] ||= i.width
|
21
23
|
attrs[:height] ||= i.height
|
@@ -12,6 +12,18 @@ module Sinatra
|
|
12
12
|
def kv(hash)
|
13
13
|
hash.map { |k, v| " #{e k}='#{e v}'" }.join('')
|
14
14
|
end
|
15
|
+
|
16
|
+
def get_file_uri(file, assets)
|
17
|
+
raise RuntimeError, "You must pass in an asset for a URI to be created for it." if file.nil?
|
18
|
+
|
19
|
+
local = assets.local_file_for file
|
20
|
+
|
21
|
+
if assets.asset_hosts.nil?
|
22
|
+
BusterHelpers.add_cache_buster(file, local)
|
23
|
+
else
|
24
|
+
assets.asset_hosts[Digest::MD5.hexdigest(file).to_i(16) % assets.asset_hosts.length]+BusterHelpers.add_cache_buster(file, local)
|
25
|
+
end
|
26
|
+
end
|
15
27
|
end
|
16
28
|
end
|
17
29
|
end
|
@@ -153,6 +153,7 @@ module Sinatra
|
|
153
153
|
attrib :js_compression # Symbol, compression method for JS
|
154
154
|
attrib :css_compression # Symbol, compression method for CSS
|
155
155
|
attrib :output_path # '/public'
|
156
|
+
attrib :asset_hosts # [ 'http://cdn0.example.org', 'http://cdn1.example.org' ]
|
156
157
|
|
157
158
|
attrib :js_compression_options # Hash
|
158
159
|
attrib :css_compression_options # Hash
|
@@ -110,10 +110,12 @@ module Sinatra
|
|
110
110
|
|
111
111
|
private
|
112
112
|
def link_tag(file, options={})
|
113
|
+
file_path = HtmlHelpers.get_file_uri(file, @assets)
|
114
|
+
|
113
115
|
if js?
|
114
|
-
"<script src='#{
|
116
|
+
"<script src='#{file_path}'#{kv options}></script>"
|
115
117
|
elsif css?
|
116
|
-
"<link rel='stylesheet' href='#{
|
118
|
+
"<link rel='stylesheet' href='#{file_path}'#{kv options} />"
|
117
119
|
end
|
118
120
|
end
|
119
121
|
end
|
data/sinatra-assetpack.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_development_dependency "coffee-script"
|
25
25
|
s.add_development_dependency "contest"
|
26
26
|
s.add_development_dependency "mocha"
|
27
|
-
s.add_development_dependency "stylus"
|
27
|
+
s.add_development_dependency "stylus", "< 0.7.1"
|
28
28
|
s.add_development_dependency "uglifier"
|
29
29
|
s.add_development_dependency "rake"
|
30
30
|
s.add_development_dependency "less"
|
data/test/glob_test.rb
CHANGED
@@ -21,6 +21,7 @@ class GlobTest < UnitTest
|
|
21
21
|
end
|
22
22
|
|
23
23
|
should "match double-star globs recursively" do
|
24
|
+
app.stubs(:development?).returns(true)
|
24
25
|
get '/a'
|
25
26
|
assert body.include?("a/b/c1/hello.")
|
26
27
|
assert body.include?("a/b/c2/hi.")
|
@@ -28,12 +29,14 @@ class GlobTest < UnitTest
|
|
28
29
|
end
|
29
30
|
|
30
31
|
should "match single-star globs in filenames" do
|
32
|
+
app.stubs(:development?).returns(true)
|
31
33
|
get '/b'
|
32
34
|
assert body.include?("a/b/c2/hi.")
|
33
35
|
assert body.include?("a/b/c2/hola.")
|
34
36
|
end
|
35
37
|
|
36
38
|
should "match single-star globs in paths" do
|
39
|
+
app.stubs(:development?).returns(true)
|
37
40
|
get '/c'
|
38
41
|
assert body.include?("a/b/c1/hello.")
|
39
42
|
assert body.include?("a/b/c2/hi.")
|
data/test/redundant_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-assetpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
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-02-
|
12
|
+
date: 2013-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tilt
|
@@ -176,16 +176,16 @@ dependencies:
|
|
176
176
|
prerelease: false
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - <
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
181
|
+
version: 0.7.1
|
182
182
|
none: false
|
183
183
|
type: :development
|
184
184
|
version_requirements: !ruby/object:Gem::Requirement
|
185
185
|
requirements:
|
186
|
-
- -
|
186
|
+
- - <
|
187
187
|
- !ruby/object:Gem::Version
|
188
|
-
version:
|
188
|
+
version: 0.7.1
|
189
189
|
none: false
|
190
190
|
- !ruby/object:Gem::Dependency
|
191
191
|
name: uglifier
|