dassets 0.8.0 → 0.9.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 +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
|