Class: Sciosano::Integrations::RackMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/sciosano/integrations/rack.rb

Overview

Rack middleware for capturing exceptions in Rack applications

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ RackMiddleware

Returns a new instance of RackMiddleware.



7
8
9
# File 'lib/sciosano/integrations/rack.rb', line 7

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/sciosano/integrations/rack.rb', line 11

def call(env)
  # Add request breadcrumb
  add_request_breadcrumb(env)

  # Set request context
  Sciosano.client&.with_context(request: build_request_context(env)) do
    @app.call(env)
  end
rescue Exception => e # rubocop:disable Lint/RescueException
  # Capture exception but re-raise
  capture_exception(e, env)
  raise
end