Class: Julewire::Rails::RequestLifecycle
- Inherits:
-
Object
- Object
- Julewire::Rails::RequestLifecycle
- Defined in:
- lib/julewire/rails/request_lifecycle.rb
Instance Method Summary collapse
- #attach_body_finalizer(response) ⇒ Object
- #finish_error(error) ⇒ Object
- #finish_unattached ⇒ Object
-
#initialize(configuration:, env:, request:, taggers:) ⇒ RequestLifecycle
constructor
A new instance of RequestLifecycle.
- #start ⇒ Object
- #start_execution!(neutral:) ⇒ Object
Constructor Details
#initialize(configuration:, env:, request:, taggers:) ⇒ RequestLifecycle
Returns a new instance of RequestLifecycle.
6 7 8 9 10 11 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 6 def initialize(configuration:, env:, request:, taggers:) @configuration = configuration @env = env @request = request @taggers = taggers end |
Instance Method Details
#attach_body_finalizer(response) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 29 def attach_body_finalizer(response) finish_request_thread_logging @completion_attached = true RequestCompletion.new( configuration: @configuration, execution_handle: @execution_handle, instrumenter_handle: @instrumenter_handle, env: @env, request: @request, request_error: @env[RequestMiddleware::REQUEST_ERROR_ENV_KEY] ).attach(response) end |
#finish_error(error) ⇒ Object
42 43 44 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 42 def finish_error(error) @execution_handle&.finish(reason: :error, error: error) end |
#finish_unattached ⇒ Object
46 47 48 49 50 51 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 46 def finish_unattached return if @completion_attached finish_unattached_request finish_request_thread_logging end |
#start ⇒ Object
13 14 15 16 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 13 def start @tag_count = @instrumenter_handle = start_request_instrumentation end |
#start_execution!(neutral:) ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 18 def start_execution!(neutral:) @execution_handle = Julewire.start_execution( type: :request, id: RequestAttributes.request_id(@request), neutral: neutral, emit_summary: @configuration.request_summary?, summary_event: @configuration.summary_event, summary_source: @configuration.source ) end |