aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib
diff options
context:
space:
mode:
authorMichael Grosser <michael@grosser.it>2015-11-05 21:24:22 -0800
committerMichael Grosser <michael@grosser.it>2015-11-07 08:38:01 -0800
commite401a6bb251d382901d0e4e80b09545b29b16a89 (patch)
tree41f9d6b0cbb4079e5be55e0c16366ea6ae589a0d /activesupport/lib
parentf036eacd6c9150e20e262568f9ee9897a8bad74f (diff)
downloadrails-e401a6bb251d382901d0e4e80b09545b29b16a89.tar.gz
rails-e401a6bb251d382901d0e4e80b09545b29b16a89.tar.bz2
rails-e401a6bb251d382901d0e4e80b09545b29b16a89.zip
do not override fetch on local cache
fetch is supposed to behave differently, this was a mistake merged in https://github.com/rails/rails/pull/22194
Diffstat (limited to 'activesupport/lib')
-rw-r--r--activesupport/lib/active_support/cache/strategy/local_cache.rb14
1 files changed, 5 insertions, 9 deletions
diff --git a/activesupport/lib/active_support/cache/strategy/local_cache.rb b/activesupport/lib/active_support/cache/strategy/local_cache.rb
index 4e2d3e9875..d521061004 100644
--- a/activesupport/lib/active_support/cache/strategy/local_cache.rb
+++ b/activesupport/lib/active_support/cache/strategy/local_cache.rb
@@ -48,10 +48,6 @@ module ActiveSupport
@data.clear
end
- def fetch(*args, &block)
- @data.fetch(*args, &block)
- end
-
def read_entry(key, options)
@data[key]
end
@@ -64,6 +60,10 @@ module ActiveSupport
def delete_entry(key, options)
!!@data.delete(key)
end
+
+ def fetch_entry(key, options = nil) # :nodoc:
+ @data.fetch(key) { @data[key] = yield }
+ end
end
# Use a local cache for the duration of block.
@@ -103,11 +103,7 @@ module ActiveSupport
protected
def read_entry(key, options) # :nodoc:
if cache = local_cache
- cache.fetch(key) do
- entry = super
- cache.write_entry(key, entry, options)
- entry
- end
+ cache.fetch_entry(key) { super }
else
super
end