Class: CloseYourIt::Rails::RequestContext

Inherits:
Object
  • Object
show all
Defined in:
lib/closeyourit/rails/request_context.rb

Overview

Rack middleware: popola lo Scope con il contesto HTTP della richiesta (method/url/header) così l'evento d'errore catturato a valle sa "in quale pagina" è capitato. Deve avvolgere CaptureExceptions (insert_before) per essere già popolato quando l'eccezione risale. Rack puro (legge env, nessuna dipendenza da Rails) → testabile in isolamento.

Constant Summary collapse

RAW_HEADERS =

Header con prefisso non-HTTP_ in env Rack.

%w[CONTENT_TYPE CONTENT_LENGTH].freeze

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ RequestContext

Returns a new instance of RequestContext.



15
16
17
# File 'lib/closeyourit/rails/request_context.rb', line 15

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



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

def call(env)
  if enabled?
    # trace_id sempre (correlazione log↔errori), anche con capture_request OFF.
    CloseYourIt::Scope.current.trace_id = trace_id_for(env)
    CloseYourIt::Scope.current.request = build_request(env) if CloseYourIt.configuration.capture_request
  end
  @app.call(env)
ensure
  CloseYourIt::Scope.reset!
end