Class: Julewire::Rails::RequestLifecycle
- Inherits:
-
Object
- Object
- Julewire::Rails::RequestLifecycle
- Defined in:
- lib/julewire/rails/request_lifecycle.rb
Instance Attribute Summary collapse
-
#execution_handle ⇒ Object
readonly
Returns the value of attribute execution_handle.
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.
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 8 def initialize(configuration:, env:, request:, taggers:) @configuration = configuration @env = env @request = request @taggers = taggers @completion_attached = false @execution_handle = nil @instrumenter_handle = nil @tag_count = 0 end |
Instance Attribute Details
#execution_handle ⇒ Object (readonly)
Returns the value of attribute execution_handle.
6 7 8 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 6 def execution_handle @execution_handle end |
Instance Method Details
#attach_body_finalizer(response) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 36 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
49 50 51 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 49 def finish_error(error) @execution_handle&.finish(reason: :error, error: error) end |
#finish_unattached ⇒ Object
53 54 55 56 57 58 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 53 def finish_unattached return if @completion_attached finish_unattached_request finish_request_thread_logging end |
#start ⇒ Object
19 20 21 22 23 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 19 def start @tag_count = @instrumenter_handle = start_request_instrumentation self end |
#start_execution!(neutral:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/julewire/rails/request_lifecycle.rb', line 25 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 |