Module: Desiru::Core::Traceable
- Included in:
- Module
- Defined in:
- lib/desiru/core/traceable.rb
Instance Method Summary collapse
- #call(inputs = {}) ⇒ Object
- #disable_trace! ⇒ Object
- #enable_trace! ⇒ Object
- #trace_enabled? ⇒ Boolean
Instance Method Details
#call(inputs = {}) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/desiru/core/traceable.rb', line 6 def call(inputs = {}) return super unless trace_enabled? # Handle anonymous classes class_name = self.class.name || "AnonymousModule" module_name = class_name.split('::').last Core.trace_context.start_trace( module_name: module_name, signature: signature, inputs: inputs ) begin result = super outputs = if result.is_a?(ModuleResult) result.outputs else result end = if result.is_a?(ModuleResult) result. else {} end Core.trace_context.end_trace( outputs: outputs, metadata: ) result rescue StandardError => e Core.trace_context.record_error(e) raise end end |
#disable_trace! ⇒ Object
56 57 58 |
# File 'lib/desiru/core/traceable.rb', line 56 def disable_trace! @trace_enabled = false end |
#enable_trace! ⇒ Object
52 53 54 |
# File 'lib/desiru/core/traceable.rb', line 52 def enable_trace! @trace_enabled = true end |
#trace_enabled? ⇒ Boolean
46 47 48 49 50 |
# File 'lib/desiru/core/traceable.rb', line 46 def trace_enabled? return true unless defined?(@trace_enabled) @trace_enabled end |