module Rack::MiniProfiler::ActiveRecordInstrumentation

Public Class Methods

included(instrumented_class) click to toggle source
# File lib/patches/db/activerecord.rb, line 6
def self.included(instrumented_class)
  instrumented_class.class_eval do
    unless instrumented_class.method_defined?(:log_without_miniprofiler)
      alias_method :log_without_miniprofiler, :log
      alias_method :log, :log_with_miniprofiler
      protected :log
    end
  end
end

Public Instance Methods

log_with_miniprofiler(*args, &block) click to toggle source
# File lib/patches/db/activerecord.rb, line 16
      def log_with_miniprofiler(*args, &block)
        return log_without_miniprofiler(*args, &block) unless SqlPatches.should_measure?

        sql, name, _binds = args
        start            = Time.now
        rval             = log_without_miniprofiler(*args, &block)

        # Don't log schema queries if the option is set
#        return rval unless sql =~ /\"vms\"/
#        return rval unless sql =~ /\"(vms|ext_management_systems)\"/
        return rval if Rack::MiniProfiler.config.skip_schema_queries and name =~ /SCHEMA/

        elapsed_time = SqlPatches.elapsed_time(start)
        Rack::MiniProfiler.record_sql(sql, elapsed_time)
        rval
      end