cache_rules 0.1.14 → 0.1.15
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/CHANGELOG.md +4 -0
- data/cache_rules.gemspec +1 -1
- data/lib/helpers.rb +3 -1
- data/test/test_cache_rules.rb +2 -2
- data/test/test_helpers.rb +1 -1
- data/test/test_regressions.rb +9 -0
- metadata +2 -2
data/CHANGELOG.md
CHANGED
data/cache_rules.gemspec
CHANGED
data/lib/helpers.rb
CHANGED
@@ -303,10 +303,12 @@ module CacheRules
|
|
303
303
|
|
304
304
|
# source: https://tools.ietf.org/html/rfc7234#section-5.2.1.2
|
305
305
|
def helper_max_stale
|
306
|
-
|
306
|
+
->(request, freshness_lifetime, current_age) {
|
307
307
|
if request && request['max-stale']
|
308
308
|
token = request['max-stale']['token']
|
309
309
|
token ? (freshness_lifetime.to_i + token.to_i) > current_age : true
|
310
|
+
else
|
311
|
+
true
|
310
312
|
end
|
311
313
|
}
|
312
314
|
end
|
data/test/test_cache_rules.rb
CHANGED
@@ -75,7 +75,7 @@ class TestCacheRules < MiniTest::Test
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def test_validate_column4
|
78
|
-
request = {"Host"=>"test.url"
|
78
|
+
request = {"Host"=>"test.url"}
|
79
79
|
cached = {"Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "X-Cache-Req-Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "X-Cache-Res-Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "Last-Modified" => {"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "Last-Modified" => {"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "ETag" => "\"validEtag\"", "Cache-Control"=>{"max-age"=>{"token"=>"100", "quoted_string" => nil}}}
|
80
80
|
|
81
81
|
result = CacheRules.validate('http://test.url/test1', request, cached)
|
@@ -87,7 +87,7 @@ class TestCacheRules < MiniTest::Test
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def test_validate_column5
|
90
|
-
request = {"Host"=>"test.url", "
|
90
|
+
request = {"Host"=>"test.url", "If-None-Match"=>"*"}
|
91
91
|
cached = {"Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "X-Cache-Req-Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "X-Cache-Res-Date"=>{"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "Last-Modified" => {"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "Last-Modified" => {"httpdate"=>"Sat, 03 Jan 2015 07:03:45 GMT", "timestamp"=>1420268625}, "ETag" => "\"validEtag\"", "Cache-Control"=>{"max-age"=>{"token"=>"100", "quoted_string" => nil}}}
|
92
92
|
|
93
93
|
result = CacheRules.validate('http://test.url/test1', request, cached)
|
data/test/test_helpers.rb
CHANGED
data/test/test_regressions.rb
CHANGED
@@ -26,4 +26,13 @@ class TestRegressions < MiniTest::Test
|
|
26
26
|
assert_kind_of String, age_string['Age']
|
27
27
|
assert_kind_of Integer, age_integer
|
28
28
|
end
|
29
|
+
|
30
|
+
# https://github.com/aw/CacheRules/issues/7
|
31
|
+
def test_bugfix_7_invalid_validation_of_max_stale
|
32
|
+
request = {"Host"=>"test.url"}
|
33
|
+
|
34
|
+
no_max_stale = CacheRules.helper_max_stale.call request, 0, 0
|
35
|
+
|
36
|
+
assert_kind_of TrueClass, no_max_stale
|
37
|
+
end
|
29
38
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cache_rules
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.15
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-04-
|
12
|
+
date: 2015-04-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fakeweb
|