Changeset 6179
- Timestamp:
- 02/20/07 23:42:04 (2 years ago)
- Files:
-
- trunk/activerecord/lib/active_record/query_cache.rb (modified) (1 diff)
- trunk/activerecord/test/query_cache_test.rb (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/activerecord/lib/active_record/query_cache.rb
r6138 r6179 64 64 (Thread.current[:query_cache] ||= {}) 65 65 end 66 67 def query_cache 68 if query_caches[self] 69 query_caches[self] 70 elsif superclass.respond_to?(:query_cache) 71 superclass.query_cache 72 end 73 end 74 75 def query_cache=(cache) 76 query_caches[self] = cache 77 end 66 78 67 79 def cache 68 query_caches[self] = QueryCache.new(connection)80 self.query_cache = QueryCache.new(connection_without_query_cache) 69 81 yield 70 82 ensure 71 query_caches[self]= nil83 self.query_cache = nil 72 84 end 73 85 74 86 def connection 75 query_cache s[self]|| connection_without_query_cache87 query_cache || connection_without_query_cache 76 88 end 77 89 end trunk/activerecord/test/query_cache_test.rb
r6138 r6179 4 4 require 'fixtures/task' 5 5 6 7 6 class QueryCacheTest < Test::Unit::TestCase 8 7 fixtures :tasks 9 10 8 11 9 def test_find_queries … … 24 22 end 25 23 end 24 25 def test_query_cache_returned 26 assert_not_equal ActiveRecord::QueryCache, Task.connection.class 27 Task.cache do 28 assert_equal ActiveRecord::QueryCache, Task.connection.class 29 end 30 end 31 26 32 27 33 def test_cache_is_scoped_on_actual_class_only … … 30 36 end 31 37 end 38 39 40 def test_cache_is_scoped_on_all_descending_classes 41 ActiveRecord::Base.cache do 42 assert_queries(1) { Task.find(1); Task.find(1) } 43 end 44 end 45 46 32 47 end 48 33 49 34 50 uses_mocha('QueryCacheExpiryTest') do