class RuntimeProfiler::Callback::ActiveRecord
Attributes
data[R]
Public Class Methods
new()
click to toggle source
# File lib/runtime_profiler/callbacks/active_record.rb, line 8 def initialize @data = {} end
Public Instance Methods
call(*args)
click to toggle source
# File lib/runtime_profiler/callbacks/active_record.rb, line 12 def call(*args) event = RuntimeProfiler::SqlEvent.new(args: args, trace: caller) return unless event.recordable? return if event.trace.empty? @data.key?(event.key) ? update(event) : add(event) end
Private Instance Methods
add(event)
click to toggle source
# File lib/runtime_profiler/callbacks/active_record.rb, line 23 def add(event) key = event.key @data[key] = {} @data[key][:sql] = event.sanitized_sql @data[key][:runtimes] = [ [event.total_runtime, event.trace.first] ] end
update(event)
click to toggle source
# File lib/runtime_profiler/callbacks/active_record.rb, line 33 def update(event) @data[event.key][:runtimes] << [event.total_runtime, event.trace.first] end