Class: PoolLint::InspectionRunner

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

Class Method Summary collapse

Class Method Details

.call(connection, inspection_point) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/poollint/inspection_runner.rb', line 6

def call(connection, inspection_point)
  configuration = PoolLint.configuration
  inspector_class = Inspectors.for(connection)
  return unless inspector_class

  state = PoolLint.connection_state(connection)
  establish_baseline(inspector_class, connection, state, configuration)
  return unless configuration.inspection_point == inspection_point
  return unless state.dirty?
  return if rand >= configuration.check_probability

  inspect_and_notify(connection, state, inspection_point, configuration, inspector_class)
rescue LeakDetected
  raise
rescue StandardError => e
  PoolLint.log_warning(
    "inspection skipped after #{e.class}: #{e.message}"
  )
end