Module: Trailblazer::Circuit::Wrap

Defined in:
lib/trailblazer/circuit/wrap.rb

Defined Under Namespace

Modules: Runner Classes: Alterations, End

Constant Summary collapse

Call =
method(:call_task)
Activity =

Wrap::Activity is the actual circuit that implements the Task wrap. This circuit is also known as ‘task_wrap`.

Example with tracing:

|-- Start
|-- Trace.capture_args   [optional]
|-- Call (call actual task)
|-- Trace.capture_return [optional]
|-- End
Trailblazer::Circuit::Activity({ id: "task.wrap" }, end: { default: End.new(:default) }) do |act|
  {
    act[:Start] => { Right => Call }, # see Wrap::call_task
    Call        => { Right => act[:End] },
  }
end

Class Method Summary collapse

Class Method Details

.call_task(direction, options, flow_options, wrap_config, original_flow_options) ⇒ Object

The call_task method implements one default step ‘Call` in the Wrap::Activity circuit. It calls the actual, wrapped task.



38
39
40
41
42
43
44
45
# File 'lib/trailblazer/circuit/wrap.rb', line 38

def self.call_task(direction, options, flow_options, wrap_config, original_flow_options)
  task  = wrap_config[:task]

  # Call the actual task we're wrapping here.
  wrap_config[:result_direction], options, flow_options = task.( direction, options, original_flow_options )

  [ direction, options, flow_options, wrap_config, original_flow_options ]
end