Module: Lucerna::Reporting

Defined in:
lib/lucerna/reporting.rb

Class Method Summary collapse

Class Method Details

.reporter(on_error, logger) ⇒ Object

Wraps on_error / logger into an always-callable reporter. A raising handler must never take down a read, the poller, or a worker thread.



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/lucerna/reporting.rb', line 9

def reporter(on_error, logger)
  handler =
    if on_error
      on_error
    elsif logger
      ->(error) { logger.warn("[lucerna] #{error.class}: #{error.message}") }
    end
  lambda do |error|
    handler&.call(error)
  rescue StandardError
    nil
  end
end