Class: Julewire::Rails::Subscribers::RenderedException
- Inherits:
-
Object
- Object
- Julewire::Rails::Subscribers::RenderedException
- Extended by:
- Core::Integration::SubscriberInstall
- Defined in:
- lib/julewire/rails/subscribers/rendered_exception.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
writeonly
Sets the attribute configuration.
Class Method Summary collapse
Instance Method Summary collapse
- #call(request, exception) ⇒ Object
-
#initialize(configuration = Configuration.new) ⇒ RenderedException
constructor
A new instance of RenderedException.
Constructor Details
#initialize(configuration = Configuration.new) ⇒ RenderedException
Returns a new instance of RenderedException.
28 29 30 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 28 def initialize(configuration = Configuration.new) @configuration = configuration end |
Instance Attribute Details
#configuration=(value) ⇒ Object (writeonly)
Sets the attribute configuration
32 33 34 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 32 def configuration=(value) @configuration = value end |
Class Method Details
.install!(configuration) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 12 def install!(configuration) return reset! unless configuration.request_summary? || configuration.rendered_exceptions? install_subscriber(configuration, enabled: true) do |subscriber| ::ActionDispatch::DebugExceptions.register_interceptor(subscriber) -> { unregister_interceptor(subscriber) } end end |
Instance Method Details
#call(request, exception) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 34 def call(request, exception) return if Suppression.active? wrapper = exception_wrapper(request, exception) return unless showable_response?(request, wrapper) capture_request_error(request, exception, wrapper) unless @configuration.rendered_exceptions? IntegrationHealth.record_success return end Julewire::Core::Integration::Facade.emit( severity: severity_for(request), event: "action_dispatch.rendered_exception", logger: "ActionDispatch::DebugExceptions", source: @configuration.source, attributes: attributes_for(request, wrapper), neutral: neutral_for(request, wrapper), error: exception ) IntegrationHealth.record_success rescue StandardError => e IntegrationHealth.record_failure( e, action: :call, component: :rendered_exception_subscriber ) end |