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.
32 33 34 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 32 def initialize(configuration = Configuration.new) @configuration = configuration end |
Instance Attribute Details
#configuration=(value) ⇒ Object (writeonly)
Sets the attribute configuration
36 37 38 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 36 def configuration=(value) @configuration = value end |
Class Method Details
.install!(configuration) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 12 def install!(configuration) return reset! unless configuration.request_summary? || configuration.rendered_exceptions? return unless defined?(::ActionDispatch::DebugExceptions) return unless ::ActionDispatch::DebugExceptions.respond_to?(:register_interceptor) install_subscriber(configuration, enabled: true) do |subscriber| ::ActionDispatch::DebugExceptions.register_interceptor(subscriber) -> { unregister_interceptor(subscriber) } end end |
Instance Method Details
#call(request, exception) ⇒ Object
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 63 64 65 66 |
# File 'lib/julewire/rails/subscribers/rendered_exception.rb', line 38 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(action: :call, component: :rendered_exception_subscriber) return end Core::Integration::Facade.emit( severity: severity_for(request, wrapper), 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(action: :call, component: :rendered_exception_subscriber) rescue StandardError => e IntegrationHealth.record_failure( e, action: :call, component: :rendered_exception_subscriber ) end |