class QueryTrail::LogSubscriber

Constants

IGNORE_PAYLOAD_NAMES

Public Instance Methods

sql(event) click to toggle source
# File lib/query_trail/log_subscriber.rb, line 6
def sql(event)
  return unless logger.debug?
  payload = event.payload
  return if IGNORE_PAYLOAD_NAMES.include?(payload[:name])

  if backtrace = backtrace_cleaner.clean(caller).presence
    logger.debug HEADER + backtrace.shift
    logger.debug backtrace.map { |line| ' ' * (HEADER.size - 13) + line }.join("\n")
  end
end

Private Instance Methods

backtrace_cleaner() click to toggle source
# File lib/query_trail/log_subscriber.rb, line 23
def backtrace_cleaner
  @backtrace_cleaner ||= begin
    backtrace_cleaner = Rails::BacktraceCleaner.new
    backtrace_cleaner.add_filter { |line| line.sub(/(app\/views.*:\d+):in.*/, '\1') }
    backtrace_cleaner
  end
end
logger() click to toggle source
# File lib/query_trail/log_subscriber.rb, line 19
def logger
  ActiveRecord::Base.logger
end