Class: NPlusOneControl::Executor::Collector
- Inherits:
-
Object
- Object
- NPlusOneControl::Executor::Collector
- Defined in:
- lib/n_plus_one_control/executor.rb
Overview
Subscribes to ActiveSupport notifications and collect matching queries.
Instance Method Summary collapse
- #call ⇒ Object
- #callback(_name, _start, _finish, _message_id, values) ⇒ Object
-
#initialize(pattern) ⇒ Collector
constructor
A new instance of Collector.
Constructor Details
#initialize(pattern) ⇒ Collector
Returns a new instance of Collector.
9 10 11 |
# File 'lib/n_plus_one_control/executor.rb', line 9 def initialize(pattern) @pattern = pattern end |
Instance Method Details
#call ⇒ Object
13 14 15 16 17 18 19 20 |
# File 'lib/n_plus_one_control/executor.rb', line 13 def call @queries = [] ActiveSupport::Notifications .subscribed(method(:callback), NPlusOneControl.event) do yield end @queries end |
#callback(_name, _start, _finish, _message_id, values) ⇒ Object
22 23 24 25 |
# File 'lib/n_plus_one_control/executor.rb', line 22 def callback(_name, _start, _finish, , values) return if %w[CACHE SCHEMA].include? values[:name] @queries << values[:sql] if @pattern.nil? || (values[:sql] =~ @pattern) end |