faraday-http-cache 2.4.0 → 2.4.1

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