Class: Chronos::Rails::ErrorReporterSubscriber

Inherits:
Object
  • Object
show all
Defined in:
lib/chronos/rails/error_reporter_subscriber.rb

Overview

Sends exceptions observed by the Rails 7 error reporter to Chronos once.

Examples:

Rails.error.subscribe(ErrorReporterSubscriber.new)

Instance Method Summary collapse

Constructor Details

#initialize(notifier = Chronos) ⇒ ErrorReporterSubscriber

Returns a new instance of ErrorReporterSubscriber.



14
15
16
# File 'lib/chronos/rails/error_reporter_subscriber.rb', line 14

def initialize(notifier = Chronos)
  @notifier = notifier
end

Instance Method Details

#report(error, handled:, severity:, context:, source: nil) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/chronos/rails/error_reporter_subscriber.rb', line 18

def report(error, handled:, severity:, context:, source: nil)
  details = {
    :context => {"rails_error_reporter" => {
      "handled" => handled == true, "severity" => severity.to_s, "source" => source.to_s
    }}
  }
  details[:context]["rails_error_reporter"]["component"] = component(context)
  @notifier.notify_once(error, details)
rescue StandardError
  false
end