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 CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.15 (2015-04-29)
4
+
5
+ * No max-stale = allow anything. Fixes issue #7
6
+
3
7
  ## 0.1.14 (2015-04-28)
4
8
 
5
9
  * Ensure Cache-Control is verified
data/cache_rules.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'date'
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = 'cache_rules'
9
- s.version = '0.1.14'
9
+ s.version = '0.1.15'
10
10
 
11
11
  s.date = Date.today.to_s
12
12
 
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
- Proc.new {|request, freshness_lifetime, current_age|
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
@@ -75,7 +75,7 @@ class TestCacheRules < MiniTest::Test
75
75
  end
76
76
 
77
77
  def test_validate_column4
78
- request = {"Host"=>"test.url", "Cache-Control"=>"max-stale=10000000"}
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", "Cache-Control"=>"max-stale=10000000", "If-None-Match"=>"*"}
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
@@ -376,7 +376,7 @@ class TestHelpers < MiniTest::Test
376
376
 
377
377
  assert_kind_of TrueClass, stale
378
378
  assert_kind_of FalseClass, fresh
379
- assert_nil noop
379
+ assert_kind_of TrueClass, noop
380
380
  assert_kind_of TrueClass, notoken
381
381
  end
382
382
 
@@ -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.14
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-28 00:00:00.000000000 Z
12
+ date: 2015-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fakeweb