Class: PoolLint::Notifier

Inherits:
Object
  • Object
show all
Defined in:
lib/poollint/notifier.rb

Constant Summary collapse

EVENT_NAME =
"leaked_state.poollint"

Instance Method Summary collapse

Constructor Details

#initialize(configuration) ⇒ Notifier

Returns a new instance of Notifier.



9
10
11
# File 'lib/poollint/notifier.rb', line 9

def initialize(configuration)
  @configuration = configuration
end

Instance Method Details

#call(report) ⇒ Object

Raises:



13
14
15
16
17
18
19
20
21
22
# File 'lib/poollint/notifier.rb', line 13

def call(report)
  return if ExecutionState.suppressed?
  return if @configuration.ignore_if&.call(report)

  ActiveSupport::Notifications.instrument(EVENT_NAME, report.to_h)

  raise LeakedSessionState, report if @configuration.mode == :raise

  PoolLint.log_warning(report.to_s)
end