Class: RightSupport::Rack::RequestTracker
- Defined in:
- lib/right_support/rack/request_tracker.rb
Overview
TODO docs
Constant Summary collapse
- REQUEST_LINEAGE_UUID_HEADER =
"HTTP_X_REQUEST_LINEAGE_UUID".freeze
- REQUEST_UUID_HEADER =
"X-Request-Uuid".freeze
- REQUEST_UUID_ENV_NAME =
"rack.request_uuid".freeze
- UUID_SEPARATOR =
" ".freeze
Instance Method Summary collapse
- #call(env) ⇒ Object
- #generate_request_uuid ⇒ Object
-
#initialize(app) ⇒ RequestTracker
constructor
Make a new Request tracker.
Constructor Details
#initialize(app) ⇒ RequestTracker
Make a new Request tracker.
Tags the requset with a new request UUID
Parameters
app(Rack client): application to run
37 38 39 |
# File 'lib/right_support/rack/request_tracker.rb', line 37 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/right_support/rack/request_tracker.rb', line 41 def call(env) if env.has_key? REQUEST_LINEAGE_UUID_HEADER request_uuid = env[REQUEST_LINEAGE_UUID_HEADER] + UUID_SEPARATOR + generate_request_uuid else request_uuid = generate_request_uuid end env[REQUEST_UUID_ENV_NAME] = request_uuid status, headers, body = @app.call(env) headers[REQUEST_UUID_HEADER] = request_uuid [status, headers,body] end |
#generate_request_uuid ⇒ Object
58 59 60 |
# File 'lib/right_support/rack/request_tracker.rb', line 58 def generate_request_uuid ::RightSupport::Data::UUID.generate end |