aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/identity_map.rb
diff options
context:
space:
mode:
authorEmilio Tagua <miloops@gmail.com>2010-10-14 15:39:57 -0300
committerEmilio Tagua <miloops@gmail.com>2010-11-19 19:08:42 -0300
commitf3722a30b63f45add2e6e03c4e7498b46628b60b (patch)
treed0bb7dcaf9625ec0bcc801592f2cf1af827d9aa0 /activerecord/lib/active_record/identity_map.rb
parent4da31d21bc0fe10fc329eb6d89ba52b27f8ed25e (diff)
downloadrails-f3722a30b63f45add2e6e03c4e7498b46628b60b.tar.gz
rails-f3722a30b63f45add2e6e03c4e7498b46628b60b.tar.bz2
rails-f3722a30b63f45add2e6e03c4e7498b46628b60b.zip
Use IdentityMap middleware to flush map on each request.
Diffstat (limited to 'activerecord/lib/active_record/identity_map.rb')
-rw-r--r--activerecord/lib/active_record/identity_map.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/identity_map.rb b/activerecord/lib/active_record/identity_map.rb
index 9f95685816..0062682555 100644
--- a/activerecord/lib/active_record/identity_map.rb
+++ b/activerecord/lib/active_record/identity_map.rb
@@ -95,5 +95,17 @@ module ActiveRecord
ActiveRecord::IdentityMap
end
end
+
+ class Middleware
+ def initialize(app)
+ @app = app
+ end
+
+ def call(env)
+ @app.call(env)
+ ensure
+ ActiveRecord::IdentityMap.clear
+ end
+ end
end
end