faraday-http-cache 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/faraday/http_cache/response.rb +2 -1
- data/lib/faraday/http_cache/strategies/base_strategy.rb +1 -0
- data/lib/faraday/http_cache/strategies/by_vary.rb +1 -1
- data/lib/faraday/http_cache.rb +2 -1
- data/spec/response_spec.rb +5 -1
- data/spec/strategies/by_vary_spec.rb +11 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ec7c39769697b84b0fd12f97d8dd14953cef613f3621be2bea6561e40a77805
|
4
|
+
data.tar.gz: f47c57b3233c0e7fec8ae527f33be203918393eb8efc3443bfc3e1a421ddd3b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46ae27b09f324cea6d5d49c6f83b9ee11c00e3840dce48243534896bf9fed16cc3e2f55d9711b8355597327af7118b35aa70fa5ba6bfc97ef924ff58b249e22c
|
7
|
+
data.tar.gz: 6a013f290b94a09be66880fd339885fde26df832f65eff3a0352fc1689a5bd2c7dece5e80998c0ab6ea8890ebd3b6b77e8a1d8643a94b4429e9de2a7b3ed60d1
|
@@ -77,7 +77,7 @@ module Faraday
|
|
77
77
|
# @return [String]
|
78
78
|
def response_cache_key_for(request, vary)
|
79
79
|
method = request.method.to_s
|
80
|
-
headers = vary.split(/[\s,]+/).map { |header| request.headers[header] }
|
80
|
+
headers = vary.split(/[\s,]+/).uniq.sort.map { |header| request.headers[header] }
|
81
81
|
Digest::SHA1.hexdigest("by_vary#{@cache_salt}#{method}#{request.url}#{headers.join}")
|
82
82
|
end
|
83
83
|
end
|
data/lib/faraday/http_cache.rb
CHANGED
data/spec/response_spec.rb
CHANGED
@@ -200,7 +200,7 @@ describe Faraday::HttpCache::Response do
|
|
200
200
|
end
|
201
201
|
|
202
202
|
describe 'response unboxing' do
|
203
|
-
subject { described_class.new(status: 200, response_headers: {}, body: 'Hi!') }
|
203
|
+
subject { described_class.new(status: 200, response_headers: {}, body: 'Hi!', reason_phrase: 'Success') }
|
204
204
|
|
205
205
|
let(:env) { { method: :get } }
|
206
206
|
let(:response) { subject.to_response(env) }
|
@@ -224,6 +224,10 @@ describe Faraday::HttpCache::Response do
|
|
224
224
|
it 'merges the body' do
|
225
225
|
expect(response.body).to eq('Hi!')
|
226
226
|
end
|
227
|
+
|
228
|
+
it 'merges the reason phrase' do
|
229
|
+
expect(response.reason_phrase).to eq('Success') if response.respond_to?(:reason_phrase)
|
230
|
+
end
|
227
231
|
end
|
228
232
|
|
229
233
|
describe 'remove age before caching and normalize max-age if non-zero age present' do
|
@@ -4,10 +4,11 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
describe Faraday::HttpCache::Strategies::ByVary do
|
6
6
|
let(:vary_index_cache_key) { '64896419583e8022efeb21d0ece6e266c0e58b59' }
|
7
|
-
let(:cache_key) { '
|
8
|
-
let(:vary) { '' }
|
7
|
+
let(:cache_key) { '978047698d156fe8642a86dbfaacc675917c9a22' }
|
8
|
+
let(:vary) { 'Accept, Accept-Encoding, X-Requested-With' }
|
9
|
+
let(:headers) { {'Accept' => 'text/html', 'Accept-Encoding' => 'gzip, deflate, br' } }
|
9
10
|
let(:request) do
|
10
|
-
env = {method: :get, url: 'http://test/index'}
|
11
|
+
env = {method: :get, url: 'http://test/index', headers: headers}
|
11
12
|
double(env.merge(serializable_hash: env))
|
12
13
|
end
|
13
14
|
|
@@ -54,11 +55,17 @@ describe Faraday::HttpCache::Strategies::ByVary do
|
|
54
55
|
)
|
55
56
|
end
|
56
57
|
end
|
58
|
+
|
59
|
+
context 'with reordered and doubled values in the vary' do
|
60
|
+
let(:vary) { 'X-Requested-With,Accept,Accept-Encoding,Accept' }
|
61
|
+
|
62
|
+
it_behaves_like 'A strategy with serialization'
|
63
|
+
end
|
57
64
|
end
|
58
65
|
|
59
66
|
context 'with the Marshal serializer' do
|
60
67
|
let(:vary_index_cache_key) { '6a7cb42440c10ef6edeb1826086a4d90b04103f0' }
|
61
|
-
let(:cache_key) { '
|
68
|
+
let(:cache_key) { 'c9edbf280da95d4cac5acda8b8109c0aba2a469a' }
|
62
69
|
let(:serializer) { Marshal }
|
63
70
|
let(:strategy) { described_class.new(store: cache, serializer: Marshal) }
|
64
71
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-http-cache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lucas Mazza
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-04-27 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
requirements: []
|
84
|
-
rubygems_version: 3.2.
|
84
|
+
rubygems_version: 3.2.22
|
85
85
|
signing_key:
|
86
86
|
specification_version: 4
|
87
87
|
summary: A Faraday middleware that stores and validates cache expiration.
|