cache_rules 0.1.14 → 0.1.15
Sign up to get free protection for your applications and to get access to all the features.
- 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
|