dassets 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/dassets.gemspec +2 -1
- data/lib/dassets/config.rb +5 -0
- data/lib/dassets/server/request.rb +8 -1
- data/lib/dassets/version.rb +1 -1
- data/test/helper.rb +2 -0
- data/test/support/factory.rb +6 -0
- data/test/unit/config_tests.rb +13 -2
- data/test/unit/engine_tests.rb +2 -2
- data/test/unit/server/request_tests.rb +33 -1
- data/test/unit/server_tests.rb +1 -1
- data/test/unit/source_tests.rb +3 -3
- metadata +22 -20
data/Gemfile
CHANGED
data/dassets.gemspec
CHANGED
@@ -11,13 +11,14 @@ Gem::Specification.new do |gem|
|
|
11
11
|
gem.description = %q{Digest and serve HTML asset files}
|
12
12
|
gem.summary = %q{Digested asset files}
|
13
13
|
gem.homepage = "http://github.com/redding/dassets"
|
14
|
+
gem.license = 'MIT'
|
14
15
|
|
15
16
|
gem.files = `git ls-files`.split($/)
|
16
17
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
19
|
gem.require_paths = ["lib"]
|
19
20
|
|
20
|
-
gem.add_development_dependency("assert", ["~> 2.
|
21
|
+
gem.add_development_dependency("assert", ["~> 2.12"])
|
21
22
|
gem.add_development_dependency('assert-rack-test', ["~> 1.0"])
|
22
23
|
gem.add_development_dependency("sinatra", ["~> 1.4"])
|
23
24
|
|
data/lib/dassets/config.rb
CHANGED
@@ -20,6 +20,11 @@ module Dassets
|
|
20
20
|
@combinations = Hash.new{ |h, k| [k] } # digest pass-thru if none defined
|
21
21
|
end
|
22
22
|
|
23
|
+
def base_url(value = nil)
|
24
|
+
@base_url = value if !value.nil?
|
25
|
+
@base_url
|
26
|
+
end
|
27
|
+
|
23
28
|
def source(path, &block)
|
24
29
|
@sources << Source.new(path).tap{ |s| block.call(s) if block }
|
25
30
|
end
|
@@ -10,7 +10,14 @@ class Dassets::Server
|
|
10
10
|
# the behavior to respect POST tunnel method specifiers. We always want
|
11
11
|
# the real request method.
|
12
12
|
def request_method; @env['REQUEST_METHOD']; end
|
13
|
-
|
13
|
+
|
14
|
+
def path_info
|
15
|
+
@env['PATH_INFO'].sub(dassets_base_url, '')
|
16
|
+
end
|
17
|
+
|
18
|
+
def dassets_base_url
|
19
|
+
Dassets.config.base_url.to_s
|
20
|
+
end
|
14
21
|
|
15
22
|
# Determine if the request is for an asset file
|
16
23
|
# This will be called on every request so speed is an issue
|
data/lib/dassets/version.rb
CHANGED
data/test/helper.rb
CHANGED
data/test/unit/config_tests.rb
CHANGED
@@ -17,8 +17,19 @@ class Dassets::Config
|
|
17
17
|
subject{ @config }
|
18
18
|
|
19
19
|
should have_options :file_store, :cache
|
20
|
-
should
|
21
|
-
should
|
20
|
+
should have_readers :combinations
|
21
|
+
should have_imeths :base_url, :source, :combination, :combination?
|
22
|
+
|
23
|
+
should "have no base url by default" do
|
24
|
+
assert_nil subject.base_url
|
25
|
+
end
|
26
|
+
|
27
|
+
should "set a base url" do
|
28
|
+
url = Factory.url
|
29
|
+
subject.base_url url
|
30
|
+
|
31
|
+
assert_equal url, subject.base_url
|
32
|
+
end
|
22
33
|
|
23
34
|
should "default the file store option to a null file store" do
|
24
35
|
assert_kind_of Dassets::FileStore::NullStore, subject.file_store
|
data/test/unit/engine_tests.rb
CHANGED
@@ -4,7 +4,7 @@ require 'dassets/engine'
|
|
4
4
|
class Dassets::Engine
|
5
5
|
|
6
6
|
class UnitTests < Assert::Context
|
7
|
-
desc "
|
7
|
+
desc "Dassets::Engine"
|
8
8
|
setup do
|
9
9
|
@engine = Dassets::Engine.new
|
10
10
|
end
|
@@ -31,7 +31,7 @@ class Dassets::Engine
|
|
31
31
|
end
|
32
32
|
|
33
33
|
class NullEngineTests < Assert::Context
|
34
|
-
desc "
|
34
|
+
desc "Dassets::NullEngine"
|
35
35
|
setup do
|
36
36
|
@engine = Dassets::NullEngine.new('some' => 'opts')
|
37
37
|
end
|
@@ -8,12 +8,22 @@ class Dassets::Server::Request
|
|
8
8
|
class UnitTests < Assert::Context
|
9
9
|
desc "Dassets::Server::Request"
|
10
10
|
setup do
|
11
|
-
@
|
11
|
+
@path = '/file1-daa05c683a4913b268653f7a7e36a5b4.txt'
|
12
|
+
@req = file_request('GET', @path)
|
12
13
|
end
|
13
14
|
subject{ @req }
|
14
15
|
|
16
|
+
should have_imeths :dassets_base_url
|
15
17
|
should have_imeths :for_asset_file?, :asset_path, :asset_file
|
16
18
|
|
19
|
+
should "know its base url" do
|
20
|
+
assert_equal Dassets.config.base_url.to_s, subject.dassets_base_url
|
21
|
+
end
|
22
|
+
|
23
|
+
should "know its path info" do
|
24
|
+
assert_equal @path, subject.path_info
|
25
|
+
end
|
26
|
+
|
17
27
|
should "know its asset_path" do
|
18
28
|
assert_equal 'file1.txt', subject.asset_path
|
19
29
|
end
|
@@ -71,4 +81,26 @@ class Dassets::Server::Request
|
|
71
81
|
|
72
82
|
end
|
73
83
|
|
84
|
+
class BaseUrlTests < UnitTests
|
85
|
+
desc "when a base url is configured"
|
86
|
+
setup do
|
87
|
+
@orig_base_url = Dassets.config.base_url
|
88
|
+
@new_base_url = Factory.url
|
89
|
+
Dassets.config.base_url(@new_base_url)
|
90
|
+
end
|
91
|
+
teardown do
|
92
|
+
Dassets.config.base_url(@orig_base_url)
|
93
|
+
end
|
94
|
+
|
95
|
+
should "have the same base url as is configured" do
|
96
|
+
assert_equal @new_base_url.to_s, subject.dassets_base_url
|
97
|
+
end
|
98
|
+
|
99
|
+
should "remove the configured base url from the path info" do
|
100
|
+
assert_equal @path, file_request('GET', @path).path_info
|
101
|
+
assert_equal @path, file_request('GET', "#{@new_base_url}#{@path}").path_info
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
|
74
106
|
end
|
data/test/unit/server_tests.rb
CHANGED
data/test/unit/source_tests.rb
CHANGED
@@ -5,7 +5,7 @@ require 'dassets/engine'
|
|
5
5
|
|
6
6
|
class Dassets::Source
|
7
7
|
|
8
|
-
class
|
8
|
+
class UnitTests < Assert::Context
|
9
9
|
desc "Dassets::Source"
|
10
10
|
setup do
|
11
11
|
@source_path = TEST_SUPPORT_PATH.join("source_files")
|
@@ -51,7 +51,7 @@ class Dassets::Source
|
|
51
51
|
|
52
52
|
end
|
53
53
|
|
54
|
-
class EmptySourceTests <
|
54
|
+
class EmptySourceTests < UnitTests
|
55
55
|
desc "with no source files"
|
56
56
|
setup do
|
57
57
|
@empty_source_path = TEST_SUPPORT_PATH.join("empty")
|
@@ -80,7 +80,7 @@ class Dassets::Source
|
|
80
80
|
|
81
81
|
end
|
82
82
|
|
83
|
-
class EngineRegistrationTests <
|
83
|
+
class EngineRegistrationTests < UnitTests
|
84
84
|
desc "when registering an engine"
|
85
85
|
setup do
|
86
86
|
@empty_engine = Class.new(Dassets::Engine) do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dassets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 9
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.9.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,26 +16,24 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date:
|
19
|
+
date: 2014-08-01 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name: assert
|
23
|
-
prerelease: false
|
24
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
23
|
none: false
|
26
24
|
requirements:
|
27
25
|
- - ~>
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
27
|
+
hash: 27
|
30
28
|
segments:
|
31
29
|
- 2
|
32
|
-
-
|
33
|
-
version: "2.
|
30
|
+
- 12
|
31
|
+
version: "2.12"
|
34
32
|
type: :development
|
33
|
+
name: assert
|
35
34
|
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: assert-rack-test
|
38
35
|
prerelease: false
|
36
|
+
- !ruby/object:Gem::Dependency
|
39
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
38
|
none: false
|
41
39
|
requirements:
|
@@ -47,10 +45,10 @@ dependencies:
|
|
47
45
|
- 0
|
48
46
|
version: "1.0"
|
49
47
|
type: :development
|
48
|
+
name: assert-rack-test
|
50
49
|
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: sinatra
|
53
50
|
prerelease: false
|
51
|
+
- !ruby/object:Gem::Dependency
|
54
52
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
53
|
none: false
|
56
54
|
requirements:
|
@@ -62,10 +60,10 @@ dependencies:
|
|
62
60
|
- 4
|
63
61
|
version: "1.4"
|
64
62
|
type: :development
|
63
|
+
name: sinatra
|
65
64
|
version_requirements: *id003
|
66
|
-
- !ruby/object:Gem::Dependency
|
67
|
-
name: ns-options
|
68
65
|
prerelease: false
|
66
|
+
- !ruby/object:Gem::Dependency
|
69
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
70
68
|
none: false
|
71
69
|
requirements:
|
@@ -77,10 +75,10 @@ dependencies:
|
|
77
75
|
- 1
|
78
76
|
version: "1.1"
|
79
77
|
type: :runtime
|
78
|
+
name: ns-options
|
80
79
|
version_requirements: *id004
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rack
|
83
80
|
prerelease: false
|
81
|
+
- !ruby/object:Gem::Dependency
|
84
82
|
requirement: &id005 !ruby/object:Gem::Requirement
|
85
83
|
none: false
|
86
84
|
requirements:
|
@@ -92,7 +90,9 @@ dependencies:
|
|
92
90
|
- 0
|
93
91
|
version: "1.0"
|
94
92
|
type: :runtime
|
93
|
+
name: rack
|
95
94
|
version_requirements: *id005
|
95
|
+
prerelease: false
|
96
96
|
description: Digest and serve HTML asset files
|
97
97
|
email:
|
98
98
|
- kelly@kellyredding.com
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- test/support/app/assets/nested/a-thing.txt.useless.dumb
|
133
133
|
- test/support/app/assets/nested/file3.txt
|
134
134
|
- test/support/empty/.gitkeep
|
135
|
+
- test/support/factory.rb
|
135
136
|
- test/support/public/file1-daa05c683a4913b268653f7a7e36a5b4.txt
|
136
137
|
- test/support/public/file2-9bbe1047cffbb590f59e0e5aeff46ae4.txt
|
137
138
|
- test/support/public/grumpy_cat-b0d1f399a916f7a25c4c0f693c619013.jpg
|
@@ -156,8 +157,8 @@ files:
|
|
156
157
|
- test/unit/source_tests.rb
|
157
158
|
- tmp/.gitkeep
|
158
159
|
homepage: http://github.com/redding/dassets
|
159
|
-
licenses:
|
160
|
-
|
160
|
+
licenses:
|
161
|
+
- MIT
|
161
162
|
post_install_message:
|
162
163
|
rdoc_options: []
|
163
164
|
|
@@ -184,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
185
|
requirements: []
|
185
186
|
|
186
187
|
rubyforge_project:
|
187
|
-
rubygems_version: 1.8.
|
188
|
+
rubygems_version: 1.8.25
|
188
189
|
signing_key:
|
189
190
|
specification_version: 3
|
190
191
|
summary: Digested asset files
|
@@ -197,6 +198,7 @@ test_files:
|
|
197
198
|
- test/support/app/assets/nested/a-thing.txt.useless.dumb
|
198
199
|
- test/support/app/assets/nested/file3.txt
|
199
200
|
- test/support/empty/.gitkeep
|
201
|
+
- test/support/factory.rb
|
200
202
|
- test/support/public/file1-daa05c683a4913b268653f7a7e36a5b4.txt
|
201
203
|
- test/support/public/file2-9bbe1047cffbb590f59e0e5aeff46ae4.txt
|
202
204
|
- test/support/public/grumpy_cat-b0d1f399a916f7a25c4c0f693c619013.jpg
|