Sha256: 01955f9044401699161fbeeb2561acc1da3cef8311c39a61456e38217556c874

Contents?: true

Size: 1.63 KB

Versions: 13

Compression:

Stored size: 1.63 KB

Contents

require 'mini_profiler/timer_struct'

module Rack
  class MiniProfiler

    # Timing system for a SQL query
    class SqlTimerStruct < TimerStruct
      def initialize(query, duration_ms, page, parent, skip_backtrace = false, full_backtrace = false)

        stack_trace = nil 
        unless skip_backtrace 
          # Allow us to filter the stack trace
          stack_trace = ""
           # Clean up the stack trace if there are options to do so
          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_filter.nil? or ln =~ Rack::MiniProfiler.config.backtrace_filter
              stack_trace << ln << "\n" 
            end
          end
        end

        @parent = parent
        @page = page

        super("ExecuteType" => 3, # TODO
              "FormattedCommandString" => query,
              "StackTraceSnippet" => stack_trace, 
              "StartMilliseconds" => ((Time.now.to_f * 1000).to_i - page['Started']) - duration_ms,
              "DurationMilliseconds" => duration_ms,
              "FirstFetchDurationMilliseconds" => duration_ms,
              "Parameters" => nil,
              "ParentTimingId" => nil,
              "IsDuplicate" => false)
      end

      def report_reader_duration(elapsed_ms)
        return if @reported
        @reported = true
        self["DurationMilliseconds"] += elapsed_ms
        @parent["SqlTimingsDurationMilliseconds"] += elapsed_ms
        @page["DurationMillisecondsInSql"] += elapsed_ms
      end

    end

  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
rack-mini-profiler-0.1.12.pre lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.11.pre lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.10 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.9 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.8 lib/mini_profiler/sql_timer_struct.rb
miniprofiler-0.1.7.4 lib/mini_profiler/sql_timer_struct.rb
miniprofiler-0.1.7.3 lib/mini_profiler/sql_timer_struct.rb
miniprofiler-0.1.7.2 lib/mini_profiler/sql_timer_struct.rb
miniprofiler-0.1.7.1 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.7 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.6 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.5 lib/mini_profiler/sql_timer_struct.rb
rack-mini-profiler-0.1.4 lib/mini_profiler/sql_timer_struct.rb