dassets 0.13.2 → 0.14.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 +5 -5
- data/Gemfile +1 -2
- data/dassets.gemspec +4 -5
- data/lib/dassets/config.rb +8 -4
- data/lib/dassets/version.rb +1 -1
- data/test/helper.rb +9 -0
- data/test/system/rack_tests.rb +3 -3
- data/test/unit/asset_file_tests.rb +2 -2
- data/test/unit/config_tests.rb +16 -7
- data/test/unit/server/response_tests.rb +1 -1
- metadata +10 -20
- data/Rakefile +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
SHA512:
|
3
|
-
metadata.gz: 6c88f5b13dbd9fd2f53e83907fee24cafab13103d25764d95461bb9c0f440c5411b698a94283eb06d870279bacde458e87f7b0ae363da0ea2a9579fb1ae4bd98
|
4
|
-
data.tar.gz: 874b87a5c52bbd3e3f47eb5f1b816f4c92e95ba7af6904a0811eaf51b815e101da59081e13b0ca01a23e1cb0b2df10d942d978a0d6a8505adee7933458a67f0c
|
5
2
|
SHA1:
|
6
|
-
|
7
|
-
|
3
|
+
data.tar.gz: 42a4505c113f65ab11aba8c4eb4b8e8ffc6ad909
|
4
|
+
metadata.gz: fe45e83de311469fdb752d0d002c99a458ec4391
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 43319a4222a6daefb725ce87b9d8c0c8dc6169a518f5cef67176ef8f9acae20cfe60f360bbef5f6e29dc138e4047d3797f9950de5728ae91b2aa4fb5ca74d96a
|
7
|
+
metadata.gz: b648a9c3df1e2f01196aba0aaf3add9a967fb93fee069f54c714b419f34d82117671a43740b68143759de8e9e580db0c2f1f7cd3a47e061a88be0a8c96d509c6
|
data/Gemfile
CHANGED
data/dassets.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = Dassets::VERSION
|
9
9
|
gem.authors = ["Kelly Redding", "Collin Redding"]
|
10
10
|
gem.email = ["kelly@kellyredding.com", "collin.redding@me.com"]
|
11
|
-
gem.description = %q{Digest and serve HTML asset files}
|
12
11
|
gem.summary = %q{Digested asset files}
|
12
|
+
gem.description = %q{Digest and serve HTML asset files}
|
13
13
|
gem.homepage = "http://github.com/redding/dassets"
|
14
14
|
gem.license = 'MIT'
|
15
15
|
|
@@ -18,11 +18,10 @@ 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", ["~> 2.
|
22
|
-
gem.add_development_dependency('assert-rack-test', ["~> 1.0"])
|
21
|
+
gem.add_development_dependency("assert", ["~> 2.16.1"])
|
22
|
+
gem.add_development_dependency('assert-rack-test', ["~> 1.0.4"])
|
23
23
|
gem.add_development_dependency("sinatra", ["~> 1.4"])
|
24
24
|
|
25
|
-
gem.add_dependency(
|
26
|
-
gem.add_dependency("rack", ["~> 1.0"])
|
25
|
+
gem.add_dependency("rack", ["~> 1.0"])
|
27
26
|
|
28
27
|
end
|
data/lib/dassets/config.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'pathname'
|
2
|
-
require 'ns-options'
|
3
2
|
require 'dassets/cache'
|
4
3
|
require 'dassets/file_store'
|
5
4
|
require 'dassets/source'
|
@@ -7,9 +6,6 @@ require 'dassets/source'
|
|
7
6
|
module Dassets
|
8
7
|
|
9
8
|
class Config
|
10
|
-
include NsOptions::Proxy
|
11
|
-
|
12
|
-
option :file_store, FileStore, :default => proc{ FileStore::NullStore.new }
|
13
9
|
|
14
10
|
attr_reader :sources, :combinations
|
15
11
|
|
@@ -19,6 +15,7 @@ module Dassets
|
|
19
15
|
@combinations = Hash.new{ |h, k| [k] } # digest pass-thru if none defined
|
20
16
|
@content_cache = Dassets::Cache::NoCache.new
|
21
17
|
@fingerprint_cache = Dassets::Cache::NoCache.new
|
18
|
+
@file_store = FileStore::NullStore.new
|
22
19
|
end
|
23
20
|
|
24
21
|
def base_url(value = nil)
|
@@ -30,6 +27,13 @@ module Dassets
|
|
30
27
|
@base_url = value
|
31
28
|
end
|
32
29
|
|
30
|
+
def file_store(value = nil)
|
31
|
+
if !value.nil?
|
32
|
+
@file_store = (value.kind_of?(FileStore) ? value : FileStore.new(value))
|
33
|
+
end
|
34
|
+
@file_store
|
35
|
+
end
|
36
|
+
|
33
37
|
def content_cache(cache = nil)
|
34
38
|
@content_cache = cache if !cache.nil?
|
35
39
|
@content_cache
|
data/lib/dassets/version.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -9,6 +9,15 @@ require 'pry'
|
|
9
9
|
|
10
10
|
require 'test/support/factory'
|
11
11
|
|
12
|
+
# 1.8.7 backfills
|
13
|
+
|
14
|
+
# Array#sample
|
15
|
+
if !(a = Array.new).respond_to?(:sample) && a.respond_to?(:choice)
|
16
|
+
class Array
|
17
|
+
alias_method :sample, :choice
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
12
21
|
require 'pathname'
|
13
22
|
TEST_SUPPORT_PATH = Pathname.new(File.expand_path('../support', __FILE__))
|
14
23
|
|
data/test/system/rack_tests.rb
CHANGED
@@ -70,7 +70,7 @@ module Dassets
|
|
70
70
|
|
71
71
|
should "return a full response on invalid-range partial content requests" do
|
72
72
|
# see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
|
73
|
-
env = { 'HTTP_RANGE' => ['bytes=3-2', 'bytes=abc'].
|
73
|
+
env = { 'HTTP_RANGE' => ['bytes=3-2', 'bytes=abc'].sample }
|
74
74
|
|
75
75
|
resp = get '/file1-daa05c683a4913b268653f7a7e36a5b4.txt', {}, env
|
76
76
|
assert_equal 200, resp.status
|
@@ -83,13 +83,13 @@ module Dassets
|
|
83
83
|
setup do
|
84
84
|
base_url = Factory.base_url
|
85
85
|
Assert.stub(Dassets.config, :base_url){ base_url }
|
86
|
-
Dassets.config.file_store
|
86
|
+
Dassets.config.file_store TEST_SUPPORT_PATH.join('public').to_s
|
87
87
|
@url = Dassets['file1.txt'].url
|
88
88
|
@url_file = Dassets.config.file_store.store_path(@url)
|
89
89
|
end
|
90
90
|
teardown do
|
91
91
|
FileUtils.rm(@url_file)
|
92
|
-
Dassets.config.file_store
|
92
|
+
Dassets.config.file_store FileStore::NullStore.new
|
93
93
|
end
|
94
94
|
|
95
95
|
should "digest the asset" do
|
@@ -116,14 +116,14 @@ class Dassets::AssetFile
|
|
116
116
|
setup do
|
117
117
|
base_url = Factory.base_url
|
118
118
|
Assert.stub(Dassets.config, :base_url){ base_url }
|
119
|
-
Dassets.config.file_store
|
119
|
+
Dassets.config.file_store TEST_SUPPORT_PATH.join('public').to_s
|
120
120
|
|
121
121
|
@save_path = @asset_file.digest!
|
122
122
|
@outfile = Dassets.config.file_store.store_path(@asset_file.url)
|
123
123
|
end
|
124
124
|
teardown do
|
125
125
|
FileUtils.rm(@outfile)
|
126
|
-
Dassets.config.file_store
|
126
|
+
Dassets.config.file_store Dassets::FileStore::NullStore.new
|
127
127
|
end
|
128
128
|
|
129
129
|
should "return the asset file url" do
|
data/test/unit/config_tests.rb
CHANGED
@@ -1,25 +1,21 @@
|
|
1
1
|
require 'assert'
|
2
2
|
require 'dassets/config'
|
3
3
|
|
4
|
-
require 'ns-options/assert_macros'
|
5
4
|
require 'dassets/cache'
|
6
5
|
require 'dassets/file_store'
|
7
6
|
|
8
7
|
class Dassets::Config
|
9
8
|
|
10
9
|
class UnitTests < Assert::Context
|
11
|
-
include NsOptions::AssertMacros
|
12
|
-
|
13
10
|
desc "Dassets::Config"
|
14
11
|
setup do
|
15
12
|
@config = Dassets::Config.new
|
16
13
|
end
|
17
14
|
subject{ @config }
|
18
15
|
|
19
|
-
should have_options :file_store
|
20
16
|
should have_readers :combinations
|
21
17
|
should have_imeths :base_url, :set_base_url
|
22
|
-
should have_imeths :content_cache, :fingerprint_cache
|
18
|
+
should have_imeths :file_store, :content_cache, :fingerprint_cache
|
23
19
|
should have_imeths :source, :combination, :combination?
|
24
20
|
|
25
21
|
should "have no base url by default" do
|
@@ -48,11 +44,24 @@ class Dassets::Config
|
|
48
44
|
assert_kind_of Dassets::FileStore::NullStore, subject.file_store
|
49
45
|
end
|
50
46
|
|
47
|
+
should "configure non-nil file stores" do
|
48
|
+
store_root = Factory.path
|
49
|
+
subject.file_store(store_root)
|
50
|
+
assert_equal store_root, subject.file_store.root
|
51
|
+
|
52
|
+
store = Dassets::FileStore.new(Factory.path)
|
53
|
+
subject.file_store(store)
|
54
|
+
assert_equal store, subject.file_store
|
55
|
+
|
56
|
+
subject.content_cache(nil)
|
57
|
+
assert_equal store, subject.file_store
|
58
|
+
end
|
59
|
+
|
51
60
|
should "default its content cache" do
|
52
61
|
assert_instance_of Dassets::Cache::NoCache, subject.content_cache
|
53
62
|
end
|
54
63
|
|
55
|
-
should "
|
64
|
+
should "configure non-nil content caches" do
|
56
65
|
cache = Dassets::Cache::MemCache.new
|
57
66
|
subject.content_cache(cache)
|
58
67
|
assert_equal cache, subject.content_cache
|
@@ -65,7 +74,7 @@ class Dassets::Config
|
|
65
74
|
assert_instance_of Dassets::Cache::NoCache, subject.fingerprint_cache
|
66
75
|
end
|
67
76
|
|
68
|
-
should "
|
77
|
+
should "configure non-nil fingerprint caches" do
|
69
78
|
cache = Dassets::Cache::MemCache.new
|
70
79
|
subject.fingerprint_cache(cache)
|
71
80
|
assert_equal cache, subject.fingerprint_cache
|
@@ -149,7 +149,7 @@ class Dassets::Server::Response
|
|
149
149
|
class NonPartialBodyTests < BodyIOTests
|
150
150
|
desc "for non/multi/invalid partial content requests"
|
151
151
|
setup do
|
152
|
-
range = [nil, 'bytes=', 'bytes=0-1,2-3', 'bytes=3-2', 'bytes=abc'].
|
152
|
+
range = [nil, 'bytes=', 'bytes=0-1,2-3', 'bytes=3-2', 'bytes=abc'].sample
|
153
153
|
env = range.nil? ? {} : { 'HTTP_RANGE' => range }
|
154
154
|
@body = Body.new(env, @asset_file)
|
155
155
|
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.
|
4
|
+
version: 0.14.0
|
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: 2016-
|
13
|
+
date: 2016-06-14 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: assert
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 2.16.1
|
23
23
|
type: :development
|
24
24
|
version_requirements: *id001
|
25
25
|
- !ruby/object:Gem::Dependency
|
@@ -28,8 +28,8 @@ dependencies:
|
|
28
28
|
requirement: &id002 !ruby/object:Gem::Requirement
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
31
|
-
-
|
32
|
-
version:
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.0.4
|
33
33
|
type: :development
|
34
34
|
version_requirements: *id002
|
35
35
|
- !ruby/object:Gem::Dependency
|
@@ -43,24 +43,15 @@ dependencies:
|
|
43
43
|
type: :development
|
44
44
|
version_requirements: *id003
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
46
|
+
name: rack
|
47
47
|
prerelease: false
|
48
48
|
requirement: &id004 !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
50
50
|
- - ~>
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: "1.
|
52
|
+
version: "1.0"
|
53
53
|
type: :runtime
|
54
54
|
version_requirements: *id004
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rack
|
57
|
-
prerelease: false
|
58
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - ~>
|
61
|
-
- *id005
|
62
|
-
type: :runtime
|
63
|
-
version_requirements: *id006
|
64
55
|
description: Digest and serve HTML asset files
|
65
56
|
email:
|
66
57
|
- kelly@kellyredding.com
|
@@ -76,7 +67,6 @@ files:
|
|
76
67
|
- Gemfile
|
77
68
|
- LICENSE
|
78
69
|
- README.md
|
79
|
-
- Rakefile
|
80
70
|
- dassets.gemspec
|
81
71
|
- lib/dassets.rb
|
82
72
|
- lib/dassets/asset_file.rb
|
@@ -135,17 +125,17 @@ require_paths:
|
|
135
125
|
- lib
|
136
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
137
127
|
requirements:
|
138
|
-
- &
|
128
|
+
- &id005
|
139
129
|
- ">="
|
140
130
|
- !ruby/object:Gem::Version
|
141
131
|
version: "0"
|
142
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
133
|
requirements:
|
144
|
-
- *
|
134
|
+
- *id005
|
145
135
|
requirements: []
|
146
136
|
|
147
137
|
rubyforge_project:
|
148
|
-
rubygems_version: 2.
|
138
|
+
rubygems_version: 2.6.4
|
149
139
|
signing_key:
|
150
140
|
specification_version: 4
|
151
141
|
summary: Digested asset files
|
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|