aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support
diff options
context:
space:
mode:
authorwangjohn <wangjohn@mit.edu>2013-04-17 17:13:46 -0400
committerwangjohn <wangjohn@mit.edu>2013-04-17 17:15:11 -0400
commitd8b25884b6b12c2da2a3af1a2095d6e8a9f014ff (patch)
tree752222b6ef54984098f1a49472db52e3fd3013c3 /activesupport/lib/active_support
parent88150e862251c80076f0a4b9c1aef02b2bb096cf (diff)
downloadrails-d8b25884b6b12c2da2a3af1a2095d6e8a9f014ff.tar.gz
rails-d8b25884b6b12c2da2a3af1a2095d6e8a9f014ff.tar.bz2
rails-d8b25884b6b12c2da2a3af1a2095d6e8a9f014ff.zip
Refactored the storage of a temporary version of the local cache into
its own method.
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r--activesupport/lib/active_support/cache/strategy/local_cache.rb14
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)