def initialize(query, duration_ms, page, parent, skip_backtrace = false, full_backtrace = false)
stack_trace = nil
unless skip_backtrace || duration_ms < Rack::MiniProfiler.config.backtrace_threshold_ms
stack_trace = ""
Kernel.caller.each do |ln|
ln.gsub!(Rack::MiniProfiler.config.backtrace_remove, '') if Rack::MiniProfiler.config.backtrace_remove and !full_backtrace
if full_backtrace or
(
(
Rack::MiniProfiler.config.backtrace_includes.nil? or
Rack::MiniProfiler.config.backtrace_includes.any?{|regex| ln =~ regex}
) and
(
Rack::MiniProfiler.config.backtrace_ignores.nil? or
Rack::MiniProfiler.config.backtrace_ignores.none?{|regex| ln =~ regex}
)
)
stack_trace << ln << "\n"
end
end
end
@parent = parent
@page = page
start_millis = ((Time.now.to_f * 1000).to_i - page[:started]) - duration_ms
super(
:execute_type => 3,
:formatted_command_string => query,
:stack_trace_snippet => stack_trace,
:start_milliseconds => start_millis,
:duration_milliseconds => duration_ms,
:first_fetch_duration_milliseconds => duration_ms,
:parameters => nil,
:parent_timing_id => nil,
:is_duplicate => false
)
end