Changeset 6189
- Timestamp:
- 02/21/07 18:08:39 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/actionpack/lib/action_controller/caching.rb
r5838 r6189 11 11 module Caching 12 12 def self.included(base) #:nodoc: 13 base.send(:include, Pages, Actions, Fragments, Sweeping) 13 base.send(:include, Pages, Actions, Fragments) 14 base.send(:include, Sweeping, SqlCache) if defined?(ActiveRecord) 14 15 15 16 base.class_eval do … … 613 614 end 614 615 end 616 617 if defined?(ActiveRecord) 618 module SqlCache 619 def self.included(base) #:nodoc: 620 base.alias_method_chain :perform_action, :caching 621 end 622 623 def perform_action_with_caching 624 ActiveRecord::Base.cache do 625 perform_action_without_caching 626 end 627 end 628 end 629 end 630 615 631 end 616 632 end trunk/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
r5955 r6189 102 102 @connection 103 103 end 104 105 def log_info(sql, name, runtime) 106 return unless @logger or !@logger.debug? 107 108 @logger.debug( 109 format_log_entry( 110 "#{name.nil? ? "SQL" : name} (#{sprintf("%f", runtime)})", 111 sql.gsub(/ +/, " ") 112 ) 113 ) 114 end 104 115 105 116 protected … … 129 140 end 130 141 131 def log_info(sql, name, runtime)132 return unless @logger133 134 @logger.debug(135 format_log_entry(136 "#{name.nil? ? "SQL" : name} (#{sprintf("%f", runtime)})",137 sql.gsub(/ +/, " ")138 )139 )140 end141 142 142 def format_log_entry(message, dump = nil) 143 143 if ActiveRecord::Base.colorize_logging trunk/activerecord/lib/active_record/query_cache.rb
r6179 r6189 11 11 12 12 def select_all(sql, name = nil) 13 (@query_cache[sql] ||= @connection.select_all(sql, name)).dup13 cache(sql) { @connection.select_all(sql, name) } 14 14 end 15 15 16 16 def select_one(sql, name = nil) 17 @query_cache[sql] ||= @connection.select_one(sql, name)17 cache(sql) { @connection.select_one(sql, name) } 18 18 end 19 19 20 20 def select_values(sql, name = nil) 21 (@query_cache[sql] ||= @connection.select_values(sql, name)).dup21 cache(sql) { @connection.select_values(sql, name) } 22 22 end 23 23 24 24 def select_value(sql, name = nil) 25 @query_cache[sql] ||= @connection.select_value(sql, name)25 cache(sql) { @connection.select_value(sql, name) } 26 26 end 27 27 … … 51 51 52 52 private 53 54 def cache(sql) 55 result = if @query_cache.has_key?(sql) 56 log_info(sql, "CACHE", 0.0) 57 @query_cache[sql] 58 else 59 @query_cache[sql] = yield 60 end 61 62 result ? result.dup : nil 63 end 64 53 65 def method_missing(method, *arguments, &proc) 54 66 @connection.send(method, *arguments, &proc)