123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ExplainRegistry::Subscriber

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: activerecord/lib/active_record/explain_registry.rb

Constant Summary

Class Method Summary

Instance Method Summary

Class Method Details

.ensure_subscribed

[ GitHub ]

  
# File 'activerecord/lib/active_record/explain_registry.rb', line 16

def ensure_subscribed
  return if @subscribed
  MUTEX.synchronize do
    return if @subscribed

    ActiveSupport::Notifications.subscribe("sql.active_record", new)
    @subscribed = true
  end
end

Instance Method Details

#finish(name, id, payload)

[ GitHub ]

  
# File 'activerecord/lib/active_record/explain_registry.rb', line 31

def finish(name, id, payload)
  if ExplainRegistry.collect? && !ignore_payload?(payload)
    ExplainRegistry.queries << payload.values_at(:sql, :binds)
  end
end

#ignore_payload?(payload) ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/explain_registry.rb', line 48

def ignore_payload?(payload)
  payload[:exception] ||
    payload[:cached] ||
    IGNORED_PAYLOADS.include?(payload[:name]) ||
    !payload[:sql].match?(EXPLAINED_SQLS)
end

#silenced?(_name) ⇒ Boolean

[ GitHub ]

  
# File 'activerecord/lib/active_record/explain_registry.rb', line 37

def silenced?(_name)
  !ExplainRegistry.collect?
end

#start(name, id, payload)

[ GitHub ]

  
# File 'activerecord/lib/active_record/explain_registry.rb', line 27

def start(name, id, payload)
  # unused
end