Module: Trailblazer::Circuit::Trace
- Defined in:
- lib/trailblazer/circuit/trace.rb,
lib/trailblazer/circuit/present.rb
Overview
Trace#call will call the activities and trace what steps are called, options passed, and the order and nesting.
stack, _ = Trailblazer::Circuit::Trace.(activity, activity[:Start], { id: 1 })
puts Trailblazer::Circuit::Present.tree(stack) # renders the trail.
Defined Under Namespace
Modules: Present Classes: Stack
Class Method Summary collapse
-
.Alterations ⇒ Object
Default tracing tasks to be plugged into the wrap circuit.
- .call(activity, direction, options, flow_options = {}, &block) ⇒ Object
-
.call_circuit(activity, *args, &block) ⇒ Object
TODO: test alterations with any wrap_circuit.
- .capture_args(direction, options, flow_options, wrap_config, original_flow_options) ⇒ Object
- .capture_return(direction, options, flow_options, wrap_config, original_flow_options) ⇒ Object
Class Method Details
.Alterations ⇒ Object
Default tracing tasks to be plugged into the wrap circuit.
30 31 32 33 34 35 |
# File 'lib/trailblazer/circuit/trace.rb', line 30 def self.Alterations [ ->(wrap_circuit) { Activity::Before( wrap_circuit, Wrap::Call, Trace.method(:capture_args), direction: Right ) }, ->(wrap_circuit) { Activity::Before( wrap_circuit, wrap_circuit[:End], Trace.method(:capture_return), direction: Right ) }, ] end |
.call(activity, direction, options, flow_options = {}, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/trailblazer/circuit/trace.rb', line 9 def self.call(activity, direction, , ={}, &block) = { runner: Wrap::Runner, stack: Trace::Stack.new, wrap_runtime: Wrap::Alterations.new(default: Trace.Alterations), wrap_static: Wrap::Alterations.new, debug: {}, # usually set that in Activity::call. } direction, , = call_circuit( activity, direction, , .merge(), &block ) return [:stack].to_a, direction, , end |
.call_circuit(activity, *args, &block) ⇒ Object
TODO: test alterations with any wrap_circuit.
24 25 26 27 |
# File 'lib/trailblazer/circuit/trace.rb', line 24 def self.call_circuit(activity, *args, &block) return activity.(*args) unless block block.(activity, *args) end |
.capture_args(direction, options, flow_options, wrap_config, original_flow_options) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/trailblazer/circuit/trace.rb', line 37 def self.capture_args(direction, , , wrap_config, ) [:stack].indent! [:stack] << [ wrap_config[:task], :args, nil, .dup, [:debug] ] [ direction, , , wrap_config, ] end |
.capture_return(direction, options, flow_options, wrap_config, original_flow_options) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/trailblazer/circuit/trace.rb', line 45 def self.capture_return(direction, , , wrap_config, ) [:stack] << [ wrap_config[:task], :return, [:result_direction], .dup ] [:stack].unindent! [ direction, , , wrap_config, ] end |