dassets 0.14.3 → 0.14.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.
- checksums.yaml +4 -4
- data/lib/dassets.rb +33 -1
- data/lib/dassets/version.rb +1 -1
- data/test/unit/dassets_tests.rb +10 -4
- data/test/unit/server/request_tests.rb +9 -8
- data/test/unit/server/response_tests.rb +4 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
data.tar.gz:
|
4
|
-
metadata.gz:
|
3
|
+
data.tar.gz: 434e3a03c8c5bd4b34ae7bb48feb16cd98a6e2e0
|
4
|
+
metadata.gz: d6cc4fb4b577a182a90b73e1bfa682d231f11d9f
|
5
5
|
SHA512:
|
6
|
-
data.tar.gz:
|
7
|
-
metadata.gz:
|
6
|
+
data.tar.gz: ddd7939d9f0273ba6c74a86db795afee1910c0a4d6ae289bdaf7cc77500a65566b963fc0a12b217aa1a1c2756db7e668d2423782f13f7cc4d5598cdb507fed4f
|
7
|
+
metadata.gz: 8862732285c774b66b688524136f96964d92ad667aeabc263c08e7e142c2c1c8f8c20e02e31f5f0bd2ba01dce7067d394c728f1ce9acdcad22ad2a0b9c401bb1
|
data/lib/dassets.rb
CHANGED
@@ -21,13 +21,43 @@ module Dassets
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def self.[](digest_path)
|
24
|
-
@asset_files[digest_path] ||= AssetFile.new(digest_path)
|
24
|
+
@asset_files[digest_path] ||= AssetFile.new(digest_path).tap do |af|
|
25
|
+
if af.fingerprint.nil?
|
26
|
+
msg = "error digesting `#{digest_path}`.\n\nMake sure Dassets has " \
|
27
|
+
"either a combination or source file for this digest path. If " \
|
28
|
+
"this path is for a combination, make sure Dassets has either " \
|
29
|
+
"a combination or source file for each digest path of the " \
|
30
|
+
"combination.\n\n"
|
31
|
+
|
32
|
+
msg << "\nCombination digest paths:"
|
33
|
+
msg << (Dassets.combinations.keys.empty? ? " (none)\n\n" : "\n\n")
|
34
|
+
Dassets.combinations.keys.sort.each do |key|
|
35
|
+
bullet = "#{key} => "
|
36
|
+
values = Dassets.combinations[key].sort
|
37
|
+
msg << (
|
38
|
+
["#{bullet}#{values.first}"] +
|
39
|
+
values[1..-1].map{ |v| "#{' '*bullet.size}#{v}" }
|
40
|
+
).join("\n")
|
41
|
+
msg << "\n\n"
|
42
|
+
end
|
43
|
+
|
44
|
+
msg << "\nSource file digest paths:"
|
45
|
+
msg << (Dassets.source_files.keys.empty? ? " (none)\n\n" : "\n\n")
|
46
|
+
msg << Dassets.source_files.keys.sort.join("\n")
|
47
|
+
|
48
|
+
raise AssetFileError, msg
|
49
|
+
end
|
50
|
+
end
|
25
51
|
end
|
26
52
|
|
27
53
|
def self.source_files
|
28
54
|
@source_files
|
29
55
|
end
|
30
56
|
|
57
|
+
def self.combinations
|
58
|
+
self.config.combinations
|
59
|
+
end
|
60
|
+
|
31
61
|
module SourceFiles
|
32
62
|
|
33
63
|
def self.new(sources)
|
@@ -45,6 +75,8 @@ module Dassets
|
|
45
75
|
|
46
76
|
end
|
47
77
|
|
78
|
+
AssetFileError = Class.new(RuntimeError)
|
79
|
+
|
48
80
|
end
|
49
81
|
|
50
82
|
Dassets.init
|
data/lib/dassets/version.rb
CHANGED
data/test/unit/dassets_tests.rb
CHANGED
@@ -11,7 +11,7 @@ module Dassets
|
|
11
11
|
subject{ Dassets }
|
12
12
|
|
13
13
|
should have_imeths :config, :configure, :init, :reset
|
14
|
-
should have_imeths :[], :source_files
|
14
|
+
should have_imeths :[], :source_files, :combinations
|
15
15
|
|
16
16
|
should "return a `Config` instance with the `config` method" do
|
17
17
|
assert_kind_of Config, subject.config
|
@@ -45,9 +45,10 @@ module Dassets
|
|
45
45
|
assert_same file2, file1
|
46
46
|
end
|
47
47
|
|
48
|
-
should "
|
49
|
-
|
50
|
-
|
48
|
+
should "complain if digest path is not found using the index operator" do
|
49
|
+
assert_raises AssetFileError do
|
50
|
+
subject['path/not/found.txt']
|
51
|
+
end
|
51
52
|
end
|
52
53
|
|
53
54
|
should "know its list of configured source files" do
|
@@ -55,6 +56,11 @@ module Dassets
|
|
55
56
|
assert_equal exp, subject.source_files
|
56
57
|
end
|
57
58
|
|
59
|
+
should "know its configured combinations" do
|
60
|
+
exp = subject.config.combinations
|
61
|
+
assert_equal exp, subject.combinations
|
62
|
+
end
|
63
|
+
|
58
64
|
end
|
59
65
|
|
60
66
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'assert'
|
2
2
|
require 'dassets/server/request'
|
3
3
|
|
4
|
+
require 'dassets'
|
4
5
|
require 'dassets/asset_file'
|
5
6
|
|
6
7
|
class Dassets::Server::Request
|
@@ -45,28 +46,28 @@ class Dassets::Server::Request
|
|
45
46
|
req = file_request('GET', '/file1-d41d8cd98f00b204e9800998ecf8427e.txt')
|
46
47
|
assert req.for_asset_file?
|
47
48
|
|
48
|
-
#
|
49
|
-
req = file_request('GET', '/file1-
|
49
|
+
# not find an invalid fingerprint
|
50
|
+
req = file_request('GET', '/file1-abc123.txt')
|
50
51
|
assert_not req.for_asset_file?
|
51
52
|
|
52
|
-
#
|
53
|
+
# not find a missing fingerprint
|
53
54
|
req = file_request('HEAD', '/file1.txt')
|
54
55
|
assert_not req.for_asset_file?
|
55
56
|
|
56
|
-
#
|
57
|
+
# not find an unknown file with a missing fingerprint
|
57
58
|
req = file_request('GET', '/some-file.txt')
|
58
59
|
assert_not req.for_asset_file?
|
59
60
|
|
60
|
-
#
|
61
|
+
# complain with an unknown file with a valid fingerprint
|
61
62
|
req = file_request('GET', '/some-file-daa05c683a4913b268653f7a7e36a5b4.txt')
|
62
|
-
|
63
|
+
assert_raises(Dassets::AssetFileError){ req.for_asset_file? }
|
63
64
|
end
|
64
65
|
|
65
|
-
should "return an asset path and
|
66
|
+
should "return an asset path and complain if request not for asset file" do
|
66
67
|
req = file_request('GET', '/some-file.txt')
|
67
68
|
|
68
69
|
assert_equal '', req.asset_path
|
69
|
-
|
70
|
+
assert_raises(Dassets::AssetFileError){ req.asset_file }
|
70
71
|
end
|
71
72
|
|
72
73
|
protected
|
@@ -2,6 +2,7 @@ require 'assert'
|
|
2
2
|
require 'dassets/server/response'
|
3
3
|
|
4
4
|
require 'rack/utils'
|
5
|
+
require 'dassets'
|
5
6
|
require 'dassets/asset_file'
|
6
7
|
|
7
8
|
class Dassets::Server::Response
|
@@ -59,13 +60,9 @@ class Dassets::Server::Response
|
|
59
60
|
end
|
60
61
|
|
61
62
|
should "handle not found files" do
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
assert_equal 404, resp.status
|
66
|
-
assert_equal ['Not Found'], resp.body
|
67
|
-
assert_equal Rack::Utils::HeaderHash.new, resp.headers
|
68
|
-
assert_equal [404, {}, ['Not Found']], resp.to_rack
|
63
|
+
assert_raises(Dassets::AssetFileError) do
|
64
|
+
Dassets['not-found-file.txt']
|
65
|
+
end
|
69
66
|
end
|
70
67
|
|
71
68
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dassets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Redding
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2017-
|
13
|
+
date: 2017-09-28 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: assert
|