Class: StackTrace::Trace
- Inherits:
-
Object
- Object
- StackTrace::Trace
- Defined in:
- lib/stack_trace/trace.rb
Instance Attribute Summary collapse
-
#spans ⇒ Object
readonly
Returns the value of attribute spans.
Class Method Summary collapse
Instance Method Summary collapse
- #add(method_name, *args) ⇒ Object
- #as_json ⇒ Object
-
#initialize ⇒ Trace
constructor
A new instance of Trace.
Constructor Details
#initialize ⇒ Trace
Returns a new instance of Trace.
31 32 33 |
# File 'lib/stack_trace/trace.rb', line 31 def initialize @spans = [] end |
Instance Attribute Details
#spans ⇒ Object (readonly)
Returns the value of attribute spans.
29 30 31 |
# File 'lib/stack_trace/trace.rb', line 29 def spans @spans end |
Class Method Details
.as_json ⇒ Object
24 25 26 |
# File 'lib/stack_trace/trace.rb', line 24 def as_json current.as_json end |
.current ⇒ Object
20 21 22 |
# File 'lib/stack_trace/trace.rb', line 20 def current @current ||= new end |
.start ⇒ Object
16 17 18 |
# File 'lib/stack_trace/trace.rb', line 16 def start @current = new end |
.track(method_name, *args) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/stack_trace/trace.rb', line 6 def track(method_name, *args) span = current.add(method_name, *args) span.value = yield rescue StandardError => e span.exception = e raise e ensure span.close end |
Instance Method Details
#add(method_name, *args) ⇒ Object
35 36 37 |
# File 'lib/stack_trace/trace.rb', line 35 def add(method_name, *args) add_to_active_span(method_name, *args) || create_new_span(method_name, *args) end |
#as_json ⇒ Object
39 40 41 |
# File 'lib/stack_trace/trace.rb', line 39 def as_json { spans: spans.map(&:as_json) } end |