faraday-http-cache 2.4.0 → 2.4.1

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: 6603be3bbf6a2840ba11f947f7e42f030ab52600912e9a62d16aaf27ee5e6446
4
- data.tar.gz: 95b8b2f4b08525406027d47e14341f5f301409a2518332b243dc08d2bde4e693
3
+ metadata.gz: 6f9734c5eda496aee6fc6d189e27f9e39b43600ffb467976649ad3f7046a8efc
4
+ data.tar.gz: 1a4d2d137c3ec0a97790cc4b5bcb706f7e0c2af0d0700e0ae03dfc79f5e2bdba
5
5
  SHA512:
6
- metadata.gz: 4675c865c18641322c71b77881a74d3ca4edbf4fb1d628ac0fe7a6388d6a3c973946f1d7fa7b09d654f1eff61484a8c2d8524c966e4377c1e12854bf8114e13a
7
- data.tar.gz: 832d7579eb75d3631e539ca7af996b9d062dbe43582468f98c349b3dbc963dde17cecf57a0202af1916297013143becba1a0fc1f32ddf92ab98490876e3efc84
6
+ metadata.gz: f93240786d8c3b8012cce14545e2f0f34f1bb12811da4edc549ad145284712b59380dac02f91ed6170d19af7af220e48d905a31a1159129d2b32b45799251df6
7
+ data.tar.gz: 8b2480bebc178003743ca2e0535966ad617349ef7ead2f7b5907f00d4580ba990332472d2ac393dc6b5bd79b787d8d560e5d772f9bfc1faca76ac6b34a5061d7
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'json'
4
+ require 'logger'
4
5
  require 'faraday/http_cache/memory_store'
5
6
 
6
7
  module Faraday
@@ -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
@@ -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) { '25230d75622fffc4f4de8a6af69e6e3764f7eb6f' }
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) { '45e0efd1a60d29ed69d6c6018dfcb96f58db89e0' }
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.0
4
+ version: 2.4.1
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: 2022-06-08 00:00:00.000000000 Z
13
+ date: 2022-08-08 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday