aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/identity_map.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/identity_map.rb b/activerecord/lib/active_record/identity_map.rb
index 3ba75a7b59..f8b65294f2 100644
--- a/activerecord/lib/active_record/identity_map.rb
+++ b/activerecord/lib/active_record/identity_map.rb
@@ -18,14 +18,21 @@ module ActiveRecord
extend ActiveSupport::Concern
class << self
- attr_accessor :enabled
+ def enabled=(flag)
+ Thread.current[:identity_map_enabled] = flag
+ end
+
+ def enabled
+ Thread.current[:identity_map_enabled]
+ end
+ alias enabled? enabled
def repository
Thread.current[:identity_map] ||= Hash.new { |h,k| h[k] = {} }
end
def use
- old, self.enabled = self.enabled, true
+ old, self.enabled = enabled, true
yield if block_given?
ensure
@@ -34,7 +41,7 @@ module ActiveRecord
end
def without
- old, self.enabled = self.enabled, false
+ old, self.enabled = enabled, false
yield if block_given?
ensure
@@ -61,12 +68,8 @@ module ActiveRecord
def clear
repository.clear
end
-
- alias enabled? enabled
end
- self.enabled = false
-
module InstanceMethods
# Reinitialize an Identity Map model object from +coder+.
# +coder+ must contain the attributes necessary for initializing an empty