dalli 5.2.4 → 5.2.5

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: 626c8dbb98798247423221395d6d518a87ad9ce64ce268488ecd4eb7d8d7f347
4
- data.tar.gz: 999126be42f4c80be3eb566d3f10dfbb8e10b46446aaaf0da546523c0e734eef
3
+ metadata.gz: 64bd21546442078425398b10e3baa0b75000a4cc8388dcac08c834909bc29731
4
+ data.tar.gz: 67568b0a0d030ce81c657cb98a2957f0a6fc12d5ed98f485305e4a93573474f8
5
5
  SHA512:
6
- metadata.gz: 34aaa230697fd4ac27118ec8a90608d30bdc8dabaf9fc5cfc1b8c4e56a20c701708f1b6b7052fd76c7363f25e238905648296865c41b770f434457005af7aac8
7
- data.tar.gz: 7bf1bbe810632bd9733a9cb122900ff9e1b283ade2ef071cec13d609cf4e0b2580de06f1116e9a71685fe98aa7804022c719ef3b921e41e9eb76f2be98b5ab1a
6
+ metadata.gz: b069ac0229a977d837ba26755ba279c9eda6b3295bb6c68fabc9baf07ae4c7367cc6acd6d1132f0a5e2913f4b000c8881df0094562b7dd773e34877fab8c21b3
7
+ data.tar.gz: 84fbaba58b48b46b7be72fbef38006259ce90268d8eb2ccfa3a1ceeee57a69e9f05472db76d2382d0a8d2e2965e63c363484f351a08bd99b9f9d65e7524d294e
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ Dalli Changelog
4
4
  Unreleased
5
5
  ==========
6
6
 
7
+ 5.2.5
8
+ ==========
9
+
10
+ Bug fixes:
11
+
12
+ - `set_multi` across more than one server stored `nil` for a Symbol key or a key over 250 bytes, in place of the value given
13
+
7
14
  5.2.4
8
15
  ==========
9
16
 
@@ -43,9 +43,12 @@ module Dalli
43
43
 
44
44
  private
45
45
 
46
+ # Values are looked up by each key as sent. The caller's key can't be
47
+ # rebuilt from it: a long key is digested, and a Symbol becomes a String.
46
48
  def setup_requests(hash, ttl, req_options)
47
- groups = groups_for_keys(hash.keys)
48
- make_set_requests(groups, hash, ttl, req_options)
49
+ pairs = hash.transform_keys { |k| @key_manager.validate_key(k.to_s) }
50
+ groups = groups_for_keys(pairs.keys)
51
+ make_set_requests(groups, pairs, ttl, req_options)
49
52
  groups.keys
50
53
  end
51
54
 
@@ -59,12 +62,10 @@ module Dalli
59
62
  # RetryableNetworkError too -- since NetworkError < DalliError -- dropping
60
63
  # this server's keys on a transient hiccup instead of retrying. Only a
61
64
  # non-network DalliError should be swallowed here.
62
- def make_set_requests(groups, hash, ttl, req_options)
65
+ def make_set_requests(groups, pairs, ttl, req_options)
63
66
  groups.each do |server, keys_for_server|
64
67
  keys_for_server.each do |key|
65
- original_key = @key_manager.key_without_namespace(key)
66
- value = hash[original_key]
67
- server.request(:pipelined_set, key, value, ttl, req_options)
68
+ server.request(:pipelined_set, key, pairs[key], ttl, req_options)
68
69
  rescue Dalli::NetworkError
69
70
  raise
70
71
  rescue Dalli::MarshalError, Dalli::ValueOverMaxSize => e
@@ -93,8 +94,7 @@ module Dalli
93
94
  end
94
95
 
95
96
  def groups_for_keys(keys)
96
- validated_keys = keys.map { |k| @key_manager.validate_key(k.to_s) }
97
- groups = @ring.keys_grouped_by_server(validated_keys)
97
+ groups = @ring.keys_grouped_by_server(keys)
98
98
 
99
99
  if (unfound_keys = groups.delete(nil))
100
100
  Dalli.logger.debug do
data/lib/dalli/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dalli
4
- VERSION = '5.2.4'
4
+ VERSION = '5.2.5'
5
5
 
6
6
  MIN_SUPPORTED_MEMCACHED_VERSION = '1.6.27'
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dalli
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.2.4
4
+ version: 5.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter M. Goldstein