remove unnecessary count query for post_versions listing
This commit is contained in:
84
config/initializers/query_trace.rb
Normal file
84
config/initializers/query_trace.rb
Normal file
@@ -0,0 +1,84 @@
|
||||
# yields a stacktrace for each SQL query
|
||||
# put this file in config/initializers
|
||||
class QueryTrace < ActiveSupport::LogSubscriber
|
||||
include Term::ANSIColor
|
||||
attr_accessor :trace_queries
|
||||
|
||||
def sql(event) #:nodoc:
|
||||
return unless QueryTrace.enabled? && logger.debug? && Rails.env.development?
|
||||
stack = Rails.backtrace_cleaner.clean(caller)
|
||||
first_line = stack.shift
|
||||
return unless first_line
|
||||
|
||||
msg = prefix + bold + cyan + "#{first_line}\n" + reset
|
||||
msg += cyan + stack.join("\n") + reset
|
||||
debug msg
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.enabled?
|
||||
#
|
||||
# yields boolean if SQL queries should be logged or not
|
||||
|
||||
def self.enabled?
|
||||
defined?(@trace_queries) && @trace_queries
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.status
|
||||
#
|
||||
# yields text if QueryTrace has been enabled or not
|
||||
|
||||
def self.status
|
||||
QueryTrace.enabled? ? 'enabled' : 'disabled'
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.enable!
|
||||
#
|
||||
# turn on SQL query origin logging
|
||||
|
||||
def self.enable!
|
||||
@trace_queries = true
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.disable!
|
||||
#
|
||||
# turn off SQL query origin logging
|
||||
|
||||
def self.disable!
|
||||
@trace_queries = false
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.toggle!
|
||||
#
|
||||
# Toggles query tracing yielding a boolean indicating the new state of query
|
||||
# origin tracing
|
||||
|
||||
def self.toggle!
|
||||
enabled? ? disable! : enable!
|
||||
enabled?
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def prefix #:nodoc:
|
||||
bold(magenta('Called from: ')) + reset
|
||||
end
|
||||
end
|
||||
|
||||
QueryTrace.attach_to :active_record
|
||||
|
||||
trap('QUIT') do
|
||||
# Sending 2 backspace characters removes the ^\ that is
|
||||
# printed to the console.
|
||||
rm_noise = "\b\b"
|
||||
|
||||
QueryTrace.toggle!
|
||||
puts "#{rm_noise}=> QueryTrace #{QueryTrace.status}"
|
||||
end
|
||||
|
||||
QueryTrace.enable! if ENV['QUERY_TRACE']
|
||||
puts "=> QueryTrace #{QueryTrace.status}; CTRL-\\ to toggle"
|
||||
Reference in New Issue
Block a user