module RailsSqlCounter
Count sql queries
Constants
- VERSION
Public Class Methods
counter()
click to toggle source
# File lib/rails_sql_counter.rb, line 46 def self.counter Thread.current[:rails_sql_counter] end
end()
click to toggle source
# File lib/rails_sql_counter.rb, line 41 def self.end ActiveSupport::Notifications.unsubscribe(@@subscriber) @@subscriber = nil end
profile(&block)
click to toggle source
# File lib/rails_sql_counter.rb, line 34 def self.profile(&block) start block.call ensure self.end end
setup() { |self| ... }
click to toggle source
# File lib/rails_sql_counter.rb, line 11 def self.setup yield self end
start()
click to toggle source
# File lib/rails_sql_counter.rb, line 26 def self.start Thread.current[:rails_sql_counter] = 0 @@subscriber ||= ActiveSupport::Notifications.subscribe('sql.active_record') do |event| process(event) end end
Private Class Methods
inc()
click to toggle source
# File lib/rails_sql_counter.rb, line 22 def self.inc Thread.current[:rails_sql_counter] += 1 end
process(event)
click to toggle source
# File lib/rails_sql_counter.rb, line 15 def self.process(event) return unless event.payload[:name]&.match?('Load') && Thread.current[:rails_sql_counter] inc show_backtrace if @@backtrace end
show_backtrace()
click to toggle source
# File lib/rails_sql_counter.rb, line 50 def self.show_backtrace # remove first two entries (gem entries) caller.drop(2).each do |line| next if line.match?(@@backtrace_regex) Rails.logger.debug " -> #{line}" end end