Class: Kiev::ContextReader
- Inherits:
-
Object
- Object
- Kiev::ContextReader
- Defined in:
- lib/kiev/context_reader.rb
Overview
Abstracts common details about reading tracing context into Kiev’s request store. Subclass and override #[] to change field lookup.
Direct Known Subclasses
Constant Summary collapse
- REQUEST_ID =
"request_id"
- TRACKING_ID =
"tracking_id"
- REQUEST_DEPTH =
"request_depth"
- TREE_PATH =
"tree_path"
Instance Method Summary collapse
- #[](key) ⇒ Object
-
#initialize(subject) ⇒ ContextReader
constructor
A new instance of ContextReader.
- #request_depth ⇒ Object
- #tracking_id ⇒ Object (also: #request_id)
- #tree_path ⇒ Object
- #tree_root? ⇒ Boolean
Constructor Details
#initialize(subject) ⇒ ContextReader
Returns a new instance of ContextReader.
13 14 15 |
# File 'lib/kiev/context_reader.rb', line 13 def initialize(subject) @subject = subject end |
Instance Method Details
#[](key) ⇒ Object
17 18 19 |
# File 'lib/kiev/context_reader.rb', line 17 def [](key) subject[key] end |
#request_depth ⇒ Object
31 32 33 |
# File 'lib/kiev/context_reader.rb', line 31 def request_depth tree_root? ? 0 : (self[REQUEST_DEPTH].to_i + 1) end |
#tracking_id ⇒ Object Also known as: request_id
21 22 23 |
# File 'lib/kiev/context_reader.rb', line 21 def tracking_id presence(self[TRACKING_ID]) || presence(self[REQUEST_ID]) || SecureRandom.uuid end |
#tree_path ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/kiev/context_reader.rb', line 35 def tree_path if tree_root? SubrequestHelper.root_path(synchronous: false) else self[TREE_PATH] end end |
#tree_root? ⇒ Boolean
27 28 29 |
# File 'lib/kiev/context_reader.rb', line 27 def tree_root? !self[TRACKING_ID] && !self[REQUEST_ID] end |