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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA512:
3
- metadata.gz: 6c88f5b13dbd9fd2f53e83907fee24cafab13103d25764d95461bb9c0f440c5411b698a94283eb06d870279bacde458e87f7b0ae363da0ea2a9579fb1ae4bd98
4
- data.tar.gz: 874b87a5c52bbd3e3f47eb5f1b816f4c92e95ba7af6904a0811eaf51b815e101da59081e13b0ca01a23e1cb0b2df10d942d978a0d6a8505adee7933458a67f0c
5
2
  SHA1:
6
- metadata.gz: 77e8957bf984a1b6957afee6fbb99d370a9752af
7
- data.tar.gz: bf20c13e61aeccabed7110b6eb630fbfc933d0a6
3
+ data.tar.gz: 42a4505c113f65ab11aba8c4eb4b8e8ffc6ad909
4
+ metadata.gz: fe45e83de311469fdb752d0d002c99a458ec4391
5
+ SHA512:
6
+ data.tar.gz: 43319a4222a6daefb725ce87b9d8c0c8dc6169a518f5cef67176ef8f9acae20cfe60f360bbef5f6e29dc138e4047d3797f9950de5728ae91b2aa4fb5ca74d96a
7
+ metadata.gz: b648a9c3df1e2f01196aba0aaf3add9a967fb93fee069f54c714b419f34d82117671a43740b68143759de8e9e580db0c2f1f7cd3a47e061a88be0a8c96d509c6
data/Gemfile CHANGED
@@ -2,5 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'rake', "~> 10.4.0"
6
- gem 'pry', "~> 0.9.0"
5
+ gem 'pry', "~> 0.9.0"
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.15"])
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('ns-options', ["~> 1.1"])
26
- gem.add_dependency("rack", ["~> 1.0"])
25
+ gem.add_dependency("rack", ["~> 1.0"])
27
26
 
28
27
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Dassets
2
- VERSION = "0.13.2"
2
+ VERSION = "0.14.0"
3
3
  end
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
 
@@ -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'].choice }
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 = TEST_SUPPORT_PATH.join('public').to_s
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 = FileStore::NullStore.new
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 = TEST_SUPPORT_PATH.join('public').to_s
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 = Dassets::FileStore::NullStore.new
126
+ Dassets.config.file_store Dassets::FileStore::NullStore.new
127
127
  end
128
128
 
129
129
  should "return the asset file url" do
@@ -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 "allow configuring non-nil content caches" do
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 "allow configuring non-nil fingerprint caches" do
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'].choice
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.13.2
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-02-23 00:00:00 Z
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: "2.15"
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
- - &id005 !ruby/object:Gem::Version
32
- version: "1.0"
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: ns-options
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.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
- - &id007
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
- - *id007
134
+ - *id005
145
135
  requirements: []
146
136
 
147
137
  rubyforge_project:
148
- rubygems_version: 2.5.1
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"