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 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