Methods

Constants

IGNORE_PAYLOAD_NAMES = ["SCHEMA", "EXPLAIN"]
RAILS_GEM_ROOT = File.expand_path("../../..", __dir__) + "/"

Class Public methods

reset_runtime()

📝 Source code
# File activerecord/lib/active_record/log_subscriber.rb, line 15
    def self.reset_runtime
      rt, self.runtime = runtime, 0
      rt
    end
🔎 See on GitHub

runtime()

📝 Source code
# File activerecord/lib/active_record/log_subscriber.rb, line 11
    def self.runtime
      ActiveRecord::RuntimeRegistry.sql_runtime ||= 0
    end
🔎 See on GitHub

runtime=(value)

📝 Source code
# File activerecord/lib/active_record/log_subscriber.rb, line 7
    def self.runtime=(value)
      ActiveRecord::RuntimeRegistry.sql_runtime = value
    end
🔎 See on GitHub

Instance Public methods

sql(event)

📝 Source code
# File activerecord/lib/active_record/log_subscriber.rb, line 20
    def sql(event)
      self.class.runtime += event.duration
      return unless logger.debug?

      payload = event.payload

      return if IGNORE_PAYLOAD_NAMES.include?(payload[:name])

      name  = "#{payload[:name]} (#{event.duration.round(1)}ms)"
      name  = "CACHE #{name}" if payload[:cached]
      sql   = payload[:sql]
      binds = nil

      unless (payload[:binds] || []).empty?
        casted_params = type_casted_binds(payload[:type_casted_binds])
        binds = "  " + payload[:binds].zip(casted_params).map { |attr, value|
          render_bind(attr, value)
        }.inspect
      end

      name = colorize_payload_name(name, payload[:name])
      sql  = color(sql, sql_color(sql), true)

      debug "  #{name}  #{sql}#{binds}"
    end
🔎 See on GitHub