dalli-store-with-cas 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/active_support/cache/dalli_store_with_cas.rb +22 -18
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95d123577ec7ed1f1772d433519a7f820dfcbd61
|
4
|
+
data.tar.gz: 4c1921041a203af90a81acc92b167761df08da56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab8e9c64d4998fdb44cbf46b488a9a24a9cbc18c4731a62b9b19089e6c3294f78c8549b9e1e47f456a6b7cfefc7f6251f6af482210a0bc909f18e0d078570e8c
|
7
|
+
data.tar.gz: bb538ca70d1b096ff9ddf5f82e381fb7a9970b20ad7158de16761437b19814ae715c806af13acd4fe6090cd8442e4ac8ca598299f358997d0967e3bbda34c72e
|
@@ -4,7 +4,7 @@ require 'dalli/cas/client'
|
|
4
4
|
module ActiveSupport
|
5
5
|
module Cache
|
6
6
|
class DalliStoreWithCas < DalliStore
|
7
|
-
DALLI_STORE_WITH_CAS_VERSION = "0.0.
|
7
|
+
DALLI_STORE_WITH_CAS_VERSION = "0.0.2"
|
8
8
|
|
9
9
|
def cas(name, options = {})
|
10
10
|
cas_multi(name, options) { |kv| { kv.keys.first => yield(kv.values.first) } }
|
@@ -19,26 +19,30 @@ module ActiveSupport
|
|
19
19
|
with do |c|
|
20
20
|
keys_to_value_and_cas = c.get_multi_cas(keys_to_names.keys)
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
22
|
+
if keys_to_value_and_cas.present?
|
23
|
+
values_to_yield = keys_to_value_and_cas.map do |key, value_and_cas|
|
24
|
+
[key, value_and_cas.first]
|
25
|
+
end.to_h
|
26
|
+
new_values = yield values_to_yield
|
27
|
+
|
28
|
+
successfully_updated_values = {}
|
29
|
+
found_corresponding_key = false
|
30
|
+
|
31
|
+
new_values.each do |k, v|
|
32
|
+
value_and_cas = keys_to_value_and_cas[k]
|
33
|
+
if value_and_cas
|
34
|
+
found_corresponding_key = true
|
35
|
+
current_cas = value_and_cas.last
|
36
|
+
if c.set_cas(k, v, current_cas, nil, options)
|
37
|
+
successfully_updated_values[k] = v
|
38
|
+
end
|
37
39
|
end
|
38
40
|
end
|
39
|
-
end
|
40
41
|
|
41
|
-
|
42
|
+
!found_corresponding_key || successfully_updated_values.present?
|
43
|
+
else
|
44
|
+
true
|
45
|
+
end
|
42
46
|
end
|
43
47
|
end
|
44
48
|
|