diff options
Diffstat (limited to 'activesupport/lib/active_support/cache')
-rw-r--r-- | activesupport/lib/active_support/cache/strategy/local_cache.rb | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/activesupport/lib/active_support/cache/strategy/local_cache.rb b/activesupport/lib/active_support/cache/strategy/local_cache.rb index 157053ee4d..392c9283d7 100644 --- a/activesupport/lib/active_support/cache/strategy/local_cache.rb +++ b/activesupport/lib/active_support/cache/strategy/local_cache.rb @@ -58,13 +58,7 @@ module ActiveSupport # Use a local cache for the duration of block. def with_local_cache - save_val = LocalCacheRegistry.cache_for(local_cache_key) - begin - LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new) - yield - ensure - LocalCacheRegistry.set_cache_for(local_cache_key, save_val) - end + use_temporary_local_cache(LocalStore.new) { yield } end #-- @@ -172,9 +166,13 @@ module ActiveSupport end def bypass_local_cache + use_temporary_local_cache(nil) { yield } + end + + def use_temporary_local_cache(temporary_cache) save_cache = LocalCacheRegistry.cache_for(local_cache_key) begin - LocalCacheRegistry.set_cache_for(local_cache_key, nil) + LocalCacheRegistry.set_cache_for(local_cache_key, temporary_cache) yield ensure LocalCacheRegistry.set_cache_for(local_cache_key, save_cache) |