From b5419cd66ea160d1ee94f3ca521bb44adf3a21ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20L=C3=BCtke?= Date: Tue, 20 Feb 2007 23:42:04 +0000 Subject: You can now use cache in instance hierachies. This allows ActiveRecord::Base.cache { } usage to cache everything git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6179 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/lib/active_record/query_cache.rb | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/query_cache.rb b/activerecord/lib/active_record/query_cache.rb index 415b25e096..e2f5c1bd88 100644 --- a/activerecord/lib/active_record/query_cache.rb +++ b/activerecord/lib/active_record/query_cache.rb @@ -63,16 +63,28 @@ module ActiveRecord def query_caches (Thread.current[:query_cache] ||= {}) end + + def query_cache + if query_caches[self] + query_caches[self] + elsif superclass.respond_to?(:query_cache) + superclass.query_cache + end + end + + def query_cache=(cache) + query_caches[self] = cache + end def cache - query_caches[self] = QueryCache.new(connection) + self.query_cache = QueryCache.new(connection_without_query_cache) yield ensure - query_caches[self] = nil + self.query_cache = nil end def connection - query_caches[self] || connection_without_query_cache + query_cache || connection_without_query_cache end end end -- cgit v1.2.3