Class: Julewire::Rails::Subscribers::Error
- Inherits:
-
Object
- Object
- Julewire::Rails::Subscribers::Error
- Extended by:
- Core::Integration::SubscriberInstall
- Defined in:
- lib/julewire/rails/subscribers/error.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
writeonly
Sets the attribute configuration.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(configuration = Configuration.new) ⇒ Error
constructor
A new instance of Error.
- #report(error, handled:, severity:, context:, source:) ⇒ Object
Constructor Details
#initialize(configuration = Configuration.new) ⇒ Error
Returns a new instance of Error.
22 23 24 |
# File 'lib/julewire/rails/subscribers/error.rb', line 22 def initialize(configuration = Configuration.new) @configuration = configuration end |
Instance Attribute Details
#configuration=(value) ⇒ Object (writeonly)
Sets the attribute configuration
26 27 28 |
# File 'lib/julewire/rails/subscribers/error.rb', line 26 def configuration=(value) @configuration = value end |
Class Method Details
.install!(configuration) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/julewire/rails/subscribers/error.rb', line 10 def install!(configuration) return reset! unless configuration.error_reports? return unless defined?(::Rails) && ::Rails.respond_to?(:error) return unless ::Rails.error.respond_to?(:subscribe) reporter = ::Rails.error install_subscriber(configuration, enabled: true) do |subscriber| Julewire::RailsSupport::EventReporter.subscribe(reporter, subscriber) end end |
Instance Method Details
#report(error, handled:, severity:, context:, source:) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/julewire/rails/subscribers/error.rb', line 28 def report(error, handled:, severity:, context:, source:) return unless @configuration.error_reports? return if Suppression.active? return if request_owned_dispatch_error?(error, handled, source) Core::Integration::Facade.emit( severity: julewire_severity(severity), event: "rails.error", logger: "Rails.error", source: @configuration.source, context: hash_or_empty(context), attributes: { rails: { handled: handled, source: source } }, error: error ) IntegrationHealth.record_success(action: :report, component: :error_subscriber) rescue StandardError => e IntegrationHealth.record_failure( e, action: :report, component: :error_subscriber ) end |