class ActiveRecord::LogSubscriber
Constants
- IGNORE_PAYLOAD_NAMES
Public Class Methods
call_count()
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 16 def self.call_count Thread.current.thread_variable_get(:active_record_sql_call_count) || Thread.current.thread_variable_set(:active_record_sql_call_count, 0) end
call_count=(value)
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 12 def self.call_count=(value) Thread.current.thread_variable_set(:active_record_sql_call_count, value) end
query_cache_hits()
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 25 def self.query_cache_hits Thread.current.thread_variable_get(:active_record_sql_query_cache_hits) || Thread.current.thread_variable_set(:active_record_sql_query_cache_hits, 0) end
query_cache_hits=(value)
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 21 def self.query_cache_hits=(value) Thread.current.thread_variable_set(:active_record_sql_query_cache_hits, value) end
reset_call_count()
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 30 def self.reset_call_count calls = call_count self.call_count = 0 calls end
reset_query_cache_hits()
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 36 def self.reset_query_cache_hits hits = query_cache_hits self.query_cache_hits = 0 hits end
Public Instance Methods
sql(event)
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 43 def sql(event) payload = event.payload self.class.runtime += event.duration self.class.call_count += 1 self.class.query_cache_hits += 1 if payload[:cached] || payload[:name] == "CACHE" return unless logger.debug? return if IGNORE_PAYLOAD_NAMES.include?(payload[:name]) log_sql_statement(payload, event) end
Private Instance Methods
log_sql_statement(payload, event)
click to toggle source
# File lib/time_bandits/monkey_patches/active_record.rb, line 58 def log_sql_statement(payload, event) name = "#{payload[:name]} (#{event.duration.round(1)}ms)" name = "CACHE #{name}" if payload[:cached] sql = payload[:sql] binds = nil unless (payload[:binds] || []).empty? casted_params = type_casted_binds(payload[:type_casted_binds]) binds = " " + payload[:binds].zip(casted_params).map { |attr, value| render_bind(attr, value) }.inspect end name = colorize_payload_name(name, payload[:name]) sql = color(sql, sql_color(sql), true) debug " #{name} #{sql}#{binds}" end