modify_value(name, amount, options)
private
Modifies the amount of an integer value that is stored in the cache. If the
key is not found it is created and set to amount.
# File activesupport/lib/active_support/cache/memory_store.rb, line 236
def modify_value(name, amount, options)
options = merged_options(options)
key = normalize_key(name, options)
version = normalize_version(name, options)
synchronize do
entry = read_entry(key, **options)
if !entry || entry.expired? || entry.mismatched?(version)
write(name, Integer(amount), options)
amount
else
num = entry.value.to_i + amount
entry = Entry.new(num, expires_at: entry.expires_at, version: entry.version)
write_entry(key, entry)
num
end
end
end