response_bank 1.3.1 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87b964dde00b2a9aa0b319430185a6cfefa8d40323b634556cf1298c8e2ee1a9
4
- data.tar.gz: 16b9d49921f037bec53031f145e44815a820de2ec93992a6d6c4926cb22b2f95
3
+ metadata.gz: 14d74ea69a9a1c0eb4ff335172ac6b20f558faffbd3ae24dd6e93efcfd2a5384
4
+ data.tar.gz: e3cb5932250dae24d430c7db27b624da90057ddf92b3b2b51a5c3a98c6bc8e4f
5
5
  SHA512:
6
- metadata.gz: 1f95e92a493db39dd4cb3dc43dd5582d19e64a9857f3304420152ae235088f1d1101cc480d112c9f49346c08e168eaaf881e351061f0ac17d6676a452ca4dc06
7
- data.tar.gz: b77dfa70dc32d45153c2177e9e5c4762a881d7bd998479b8a209121b903ef9d3f323335ebba7aeb6bbfab381fd5fbddc2f861ddf19145e606348d8b5b00a60e7
6
+ metadata.gz: d784ab262b7643c9accc237eed90dd533492f5cb40b2b4b80d9e1a64b7ae244d5afc376a7e35adec4f0e5e8f7973339a9df432b8c7eae32fe8b785bd5c13ff4c
7
+ data.tar.gz: 99fd39c21b6323ca73d0d170ee991f6130982fea56654d12a9c76a4e62427e99bb026bb09462796e53be391a0634167fb4697a99c0dce2ab96381dd603949fcf
@@ -59,7 +59,7 @@ module ResponseBank
59
59
  end
60
60
 
61
61
  def entity_tag
62
- @entity_tag ||= ResponseBank.cache_key_for(key: @key_data, version: @version_data, key_schema_version: @key_schema_version)
62
+ @entity_tag ||= ResponseBank.cache_key_for(key: @key_data, version: @version_data, key_schema_version: @key_schema_version, encoding: @env['response_bank.server_cache_encoding'])
63
63
  end
64
64
 
65
65
  def cache_key
@@ -166,13 +166,19 @@ module ResponseBank
166
166
  # If-None-Match: "abc"
167
167
  # If-None-Match: W/"abc"
168
168
  # If-None-Match: "abc", "def"
169
- # If-None-Match: "*"
169
+ # If-None-Match: *
170
170
  return false unless entity_tag
171
171
  return false unless if_none_match
172
172
 
173
+ return true if if_none_match == "*"
174
+
173
175
  # strictly speaking an unquoted etag is not valid, yet common
174
176
  # to avoid unintended greedy matches in we check for naked entity then includes with quoted entity values
175
- if_none_match == "*" || if_none_match == entity_tag || if_none_match.include?(%{"#{entity_tag}"})
177
+ entity_tag = %{"#{entity_tag}"} unless entity_tag.starts_with?('"')
178
+
179
+ if_none_match = %{"#{if_none_match}"} unless if_none_match.starts_with?('"') || if_none_match.starts_with?('W/"')
180
+
181
+ if_none_match == entity_tag || if_none_match.include?(entity_tag)
176
182
  end
177
183
 
178
184
  def stale_while_revalidate?(timestamp, cache_age_tolerance)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ResponseBank
3
- VERSION = "1.3.1"
3
+ VERSION = "1.3.3"
4
4
  end
data/lib/response_bank.rb CHANGED
@@ -30,7 +30,7 @@ module ResponseBank
30
30
  backing_cache_store.read(cache_key, raw: true)
31
31
  end
32
32
 
33
- def compress(content, encoding = "gzip")
33
+ def compress(content, encoding = "br")
34
34
  case encoding
35
35
  when 'gzip'
36
36
  Zlib.gzip(content, level: Zlib::BEST_COMPRESSION)
@@ -41,7 +41,7 @@ module ResponseBank
41
41
  end
42
42
  end
43
43
 
44
- def decompress(content, encoding = "gzip")
44
+ def decompress(content, encoding = "br")
45
45
  case encoding
46
46
  when 'gzip'
47
47
  Zlib.gunzip(content)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: response_bank
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Lütke