dassets 0.10.1 → 0.11.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.
- checksums.yaml +4 -4
- data/dassets.gemspec +2 -3
- data/lib/dassets/asset_file.rb +14 -6
- data/lib/dassets/config.rb +5 -1
- data/lib/dassets/version.rb +1 -1
- data/test/unit/asset_file_tests.rb +24 -13
- data/test/unit/config_tests.rb +14 -2
- data/test/unit/server/request_tests.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 244a7ebdc3e3946a77738679d15461540e10fdf4
|
4
|
+
data.tar.gz: f9139f0feab58b8ec02fdb7f65741e1066e13968
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0986dc632093cc8960fb505c67bfec57e760e25c51a5023a307cb628ce45e4bc1939cf24afa756dd81d74a313e214f99671704d5d6ca900c9bfb8eba8a570f1
|
7
|
+
data.tar.gz: af99765ab02de4783213f347106fe2fff5d863120b0a687f17c84e47a7a66d1e16a1539e00348447bea0ff3d307df5a114fc0bba8de92cdd7045eb9f1a978752
|
data/dassets.gemspec
CHANGED
@@ -18,10 +18,9 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.add_development_dependency("assert",
|
21
|
+
gem.add_development_dependency("assert", ["~> 2.15"])
|
22
22
|
gem.add_development_dependency('assert-rack-test', ["~> 1.0"])
|
23
|
-
gem.add_development_dependency("sinatra",
|
24
|
-
|
23
|
+
gem.add_development_dependency("sinatra", ["~> 1.4"])
|
25
24
|
|
26
25
|
gem.add_dependency('ns-options', ["~> 1.1"])
|
27
26
|
gem.add_dependency("rack", ["~> 1.0"])
|
data/lib/dassets/asset_file.rb
CHANGED
@@ -17,18 +17,20 @@ class Dassets::AssetFile
|
|
17
17
|
|
18
18
|
def digest!
|
19
19
|
return if !self.exists?
|
20
|
-
Dassets.config.file_store.save(self.
|
20
|
+
Dassets.config.file_store.save(self.path){ self.content }
|
21
21
|
end
|
22
22
|
|
23
|
-
def
|
24
|
-
|
25
|
-
File.join(@dirname,
|
23
|
+
def path
|
24
|
+
path_basename = "#{@basename}-#{self.fingerprint}#{@extname}"
|
25
|
+
File.join(@dirname, path_basename).sub(/^\.\//, '').sub(/^\//, '')
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
"/#{self.
|
28
|
+
def url
|
29
|
+
"#{dassets_base_url}/#{self.path}"
|
30
30
|
end
|
31
31
|
|
32
|
+
alias_method :href, :url
|
33
|
+
|
32
34
|
def fingerprint
|
33
35
|
return nil if !self.exists?
|
34
36
|
@source_proxy.fingerprint
|
@@ -64,4 +66,10 @@ class Dassets::AssetFile
|
|
64
66
|
self.fingerprint == other_asset_file.fingerprint
|
65
67
|
end
|
66
68
|
|
69
|
+
private
|
70
|
+
|
71
|
+
def dassets_base_url
|
72
|
+
Dassets.config.base_url.to_s
|
73
|
+
end
|
74
|
+
|
67
75
|
end
|
data/lib/dassets/config.rb
CHANGED
@@ -21,10 +21,14 @@ module Dassets
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def base_url(value = nil)
|
24
|
-
|
24
|
+
set_base_url(value) if !value.nil?
|
25
25
|
@base_url
|
26
26
|
end
|
27
27
|
|
28
|
+
def set_base_url(value)
|
29
|
+
@base_url = value
|
30
|
+
end
|
31
|
+
|
28
32
|
def source(path, &block)
|
29
33
|
@sources << Source.new(path).tap{ |s| block.call(s) if block }
|
30
34
|
end
|
data/lib/dassets/version.rb
CHANGED
@@ -15,8 +15,8 @@ class Dassets::AssetFile
|
|
15
15
|
subject{ @asset_file }
|
16
16
|
|
17
17
|
should have_readers :digest_path, :dirname, :extname, :basename, :source_proxy
|
18
|
-
should have_imeths :digest!, :url, :fingerprint, :content
|
19
|
-
should have_imeths :
|
18
|
+
should have_imeths :digest!, :path, :url, :href, :fingerprint, :content
|
19
|
+
should have_imeths :mtime, :size, :mime_type, :exists?, :==
|
20
20
|
|
21
21
|
should "know its digest path, dirname, extname, and basename" do
|
22
22
|
assert_equal 'file1.txt', subject.digest_path
|
@@ -68,29 +68,40 @@ class Dassets::AssetFile
|
|
68
68
|
assert_equal exp_content, without_output.content
|
69
69
|
end
|
70
70
|
|
71
|
-
should "build it's
|
72
|
-
assert_match /^file1-[a-f0-9]{32}\.txt$/, subject.
|
71
|
+
should "build it's path from the file and the fingerprint" do
|
72
|
+
assert_match /^file1-[a-f0-9]{32}\.txt$/, subject.path
|
73
73
|
|
74
74
|
nested = Dassets::AssetFile.new('nested/file1.txt')
|
75
|
-
assert_equal "nested/file1-.txt", nested.
|
75
|
+
assert_equal "nested/file1-.txt", nested.path
|
76
76
|
end
|
77
77
|
|
78
|
-
should "build it's href from the url" do
|
79
|
-
assert_match /^\/file1-[a-f0-9]{32}\.txt$/, subject.
|
78
|
+
should "build it's url/href from the path and any configured base url" do
|
79
|
+
assert_match /^\/file1-[a-f0-9]{32}\.txt$/, subject.url
|
80
|
+
assert_match subject.url, subject.href
|
80
81
|
|
81
82
|
nested = Dassets::AssetFile.new('nested/file1.txt')
|
82
|
-
assert_equal "/nested/file1-.txt", nested.
|
83
|
+
assert_equal "/nested/file1-.txt", nested.url
|
84
|
+
assert_equal nested.url, nested.href
|
85
|
+
|
86
|
+
base_url = Factory.url
|
87
|
+
Dassets.config.base_url base_url
|
88
|
+
|
89
|
+
assert_match /^#{base_url}\/file1-[a-f0-9]{32}\.txt$/, subject.url
|
90
|
+
assert_match subject.url, subject.href
|
91
|
+
|
92
|
+
assert_equal "#{base_url}/nested/file1-.txt", nested.url
|
93
|
+
assert_equal nested.url, nested.href
|
83
94
|
end
|
84
95
|
|
85
96
|
should "not memoize its attributes" do
|
97
|
+
path1 = subject.path
|
98
|
+
path2 = subject.path
|
99
|
+
assert_not_same path2, path1
|
100
|
+
|
86
101
|
url1 = subject.url
|
87
102
|
url2 = subject.url
|
88
103
|
assert_not_same url2, url1
|
89
104
|
|
90
|
-
href1 = subject.href
|
91
|
-
href2 = subject.href
|
92
|
-
assert_not_same href2, href1
|
93
|
-
|
94
105
|
fingerprint1 = subject.fingerprint
|
95
106
|
fingerprint2 = subject.fingerprint
|
96
107
|
assert_not_same fingerprint2, fingerprint1
|
@@ -111,7 +122,7 @@ class Dassets::AssetFile
|
|
111
122
|
setup do
|
112
123
|
Dassets.config.file_store = TEST_SUPPORT_PATH.join('public').to_s
|
113
124
|
@save_path = @asset_file.digest!
|
114
|
-
@outfile = Dassets.config.file_store.store_path(@asset_file.
|
125
|
+
@outfile = Dassets.config.file_store.store_path(@asset_file.path)
|
115
126
|
end
|
116
127
|
teardown do
|
117
128
|
Dassets.config.file_store = Dassets::FileStore::NullStore.new
|
data/test/unit/config_tests.rb
CHANGED
@@ -18,19 +18,31 @@ class Dassets::Config
|
|
18
18
|
|
19
19
|
should have_options :file_store, :cache
|
20
20
|
should have_readers :combinations
|
21
|
-
should have_imeths :base_url, :
|
21
|
+
should have_imeths :base_url, :set_base_url
|
22
|
+
should have_imeths :source, :combination, :combination?
|
22
23
|
|
23
24
|
should "have no base url by default" do
|
24
25
|
assert_nil subject.base_url
|
25
26
|
end
|
26
27
|
|
27
|
-
should "set
|
28
|
+
should "set non-nil base urls" do
|
28
29
|
url = Factory.url
|
29
30
|
subject.base_url url
|
31
|
+
assert_equal url, subject.base_url
|
30
32
|
|
33
|
+
subject.base_url(nil)
|
31
34
|
assert_equal url, subject.base_url
|
32
35
|
end
|
33
36
|
|
37
|
+
should "force set any base urls" do
|
38
|
+
url = Factory.url
|
39
|
+
subject.set_base_url url
|
40
|
+
assert_equal url, subject.base_url
|
41
|
+
|
42
|
+
subject.set_base_url(nil)
|
43
|
+
assert_nil subject.base_url
|
44
|
+
end
|
45
|
+
|
34
46
|
should "default the file store option to a null file store" do
|
35
47
|
assert_kind_of Dassets::FileStore::NullStore, subject.file_store
|
36
48
|
end
|
@@ -85,11 +85,11 @@ class Dassets::Server::Request
|
|
85
85
|
desc "when a base url is configured"
|
86
86
|
setup do
|
87
87
|
@orig_base_url = Dassets.config.base_url
|
88
|
-
@new_base_url
|
88
|
+
@new_base_url = Factory.url
|
89
89
|
Dassets.config.base_url(@new_base_url)
|
90
90
|
end
|
91
91
|
teardown do
|
92
|
-
Dassets.config.
|
92
|
+
Dassets.config.set_base_url(@orig_base_url)
|
93
93
|
end
|
94
94
|
|
95
95
|
should "have the same base url as is configured" do
|
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.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kelly Redding
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: assert
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '2.
|
20
|
+
version: '2.15'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '2.
|
27
|
+
version: '2.15'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: assert-rack-test
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|