Skip to content

Commit b1ec311

Browse files
authored
Merge pull request rails#54292 from zzak/re-54261
Move back to kwargs for (de)increment for cache stores
2 parents 69cb72e + 963f968 commit b1ec311

File tree

8 files changed

+43
-27
lines changed

8 files changed

+43
-27
lines changed

activesupport/lib/active_support/cache/file_store.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def cleanup(options = nil)
5757
# cache.write("baz", 5)
5858
# cache.increment("baz") # => 6
5959
#
60-
def increment(name, amount = 1, options = nil)
60+
def increment(name, amount = 1, **options)
6161
options = merged_options(options)
6262
key = normalize_key(name, options)
6363

@@ -77,7 +77,7 @@ def increment(name, amount = 1, options = nil)
7777
# cache.write("baz", 5)
7878
# cache.decrement("baz") # => 4
7979
#
80-
def decrement(name, amount = 1, options = nil)
80+
def decrement(name, amount = 1, **options)
8181
options = merged_options(options)
8282
key = normalize_key(name, options)
8383

activesupport/lib/active_support/cache/memory_store.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ def pruning?
146146
# cache.write("baz", 5)
147147
# cache.increment("baz") # => 6
148148
#
149-
def increment(name, amount = 1, options = nil)
149+
def increment(name, amount = 1, **options)
150150
instrument(:increment, name, amount: amount) do
151-
modify_value(name, amount, options)
151+
modify_value(name, amount, **options)
152152
end
153153
end
154154

@@ -163,9 +163,9 @@ def increment(name, amount = 1, options = nil)
163163
# cache.write("baz", 5)
164164
# cache.decrement("baz") # => 4
165165
#
166-
def decrement(name, amount = 1, options = nil)
166+
def decrement(name, amount = 1, **options)
167167
instrument(:decrement, name, amount: amount) do
168-
modify_value(name, -amount, options)
168+
modify_value(name, -amount, **options)
169169
end
170170
end
171171

@@ -238,7 +238,7 @@ def delete_entry(key, **options)
238238

239239
# Modifies the amount of an integer value that is stored in the cache.
240240
# If the key is not found it is created and set to +amount+.
241-
def modify_value(name, amount, options)
241+
def modify_value(name, amount, **options)
242242
options = merged_options(options)
243243
key = normalize_key(name, options)
244244
version = normalize_version(name, options)

activesupport/lib/active_support/cache/null_store.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ def clear(options = nil)
2525
def cleanup(options = nil)
2626
end
2727

28-
def increment(name, amount = 1, options = nil)
28+
def increment(name, amount = 1, **options)
2929
end
3030

31-
def decrement(name, amount = 1, options = nil)
31+
def decrement(name, amount = 1, **options)
3232
end
3333

3434
def delete_matched(matcher, options = nil)

activesupport/lib/active_support/cache/strategy/local_cache.rb

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,25 +94,17 @@ def delete_matched(matcher, options = nil) # :nodoc:
9494
super
9595
end
9696

97-
def increment(name, amount = 1, options = nil) # :nodoc:
97+
def increment(name, amount = 1, **options) # :nodoc:
9898
return super unless local_cache
9999
value = bypass_local_cache { super }
100-
if options
101-
write_cache_value(name, value, raw: true, **options)
102-
else
103-
write_cache_value(name, value, raw: true)
104-
end
100+
write_cache_value(name, value, raw: true, **options)
105101
value
106102
end
107103

108-
def decrement(name, amount = 1, options = nil) # :nodoc:
104+
def decrement(name, amount = 1, **options) # :nodoc:
109105
return super unless local_cache
110106
value = bypass_local_cache { super }
111-
if options
112-
write_cache_value(name, value, raw: true, **options)
113-
else
114-
write_cache_value(name, value, raw: true)
115-
end
107+
write_cache_value(name, value, raw: true, **options)
116108
value
117109
end
118110

activesupport/test/cache/behaviors/cache_increment_decrement_behavior.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ def test_decrement
3434
def test_ttl_isnt_updated
3535
key = SecureRandom.uuid
3636

37-
assert_equal 1, @cache.increment(key, 1, expires_in: 1)
38-
assert_equal 2, @cache.increment(key, 1, expires_in: 5000)
37+
assert_equal 1, @cache.increment(key, expires_in: 1)
38+
assert_equal 2, @cache.increment(key, expires_in: 5000)
3939

4040
# having to sleep two seconds in a test is bad, but we're testing
4141
# a wide range of backends with different TTL mechanisms, most without

activesupport/test/cache/stores/memory_store_test.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ def test_increment_preserves_expiry
3838
Time.stub(:now, Time.now + 1.minute) do
3939
assert_nil @cache.read("counter", raw: true)
4040
end
41+
42+
@cache.write("counter", 1, raw: true)
43+
@cache.increment("counter", expires_in: 30)
44+
assert_equal 2, @cache.read("counter", raw: true)
45+
Time.stub(:now, Time.now + 1.minute) do
46+
assert_nil @cache.read("counter2", raw: true)
47+
end
4148
end
4249

4350
def test_cleanup_instrumentation

activesupport/test/cache/stores/null_store_test.rb

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,26 @@ def test_increment
4040
assert_nil @cache.increment("name")
4141
end
4242

43+
def test_increment_with_options
44+
time = Time.now
45+
@cache.increment("name", expires_in: 1.second)
46+
Time.stub(:now, time + 2.seconds) do
47+
assert_nil @cache.read("name")
48+
end
49+
end
50+
4351
def test_decrement
4452
@cache.write("name", 1, raw: true)
45-
assert_nil @cache.increment("name")
53+
assert_nil @cache.decrement("name")
54+
end
55+
56+
def test_decrement_with_options
57+
time = Time.now
58+
@cache.write("name", 1, raw: true)
59+
@cache.decrement("name", expires_in: 1.second)
60+
Time.stub(:now, time + 2.seconds) do
61+
assert_nil @cache.read("name")
62+
end
4663
end
4764

4865
def test_delete_matched

activesupport/test/cache/stores/redis_cache_store_test.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,22 +220,22 @@ def test_increment_ttl
220220
end
221221

222222
def test_increment_expires_in
223-
@cache.increment "foo", 1, expires_in: 60
223+
@cache.increment "foo", expires_in: 60
224224
redis_backend do |r|
225225
assert r.exists?("#{@namespace}:foo")
226226
assert r.ttl("#{@namespace}:foo") > 0
227227
end
228228

229229
# key and ttl exist
230230
redis_backend { |r| r.setex "#{@namespace}:bar", 120, 1 }
231-
@cache.increment "bar", 1, expires_in: 60
231+
@cache.increment "bar", expires_in: 60
232232
redis_backend do |r|
233233
assert r.ttl("#{@namespace}:bar") > 60
234234
end
235235

236236
# key exist but not have expire
237237
redis_backend(@cache_no_ttl) { |r| r.set "#{@namespace}:dar", 10 }
238-
@cache_no_ttl.increment "dar", 1, expires_in: 60
238+
@cache_no_ttl.increment "dar", expires_in: 60
239239
redis_backend(@cache_no_ttl) do |r|
240240
assert r.ttl("#{@namespace}:dar") > 0
241241
end

0 commit comments

Comments
 (0)