Method: Trailblazer::Activity::TaskWrap.invoke

Defined in:
lib/trailblazer/activity/task_wrap.rb

.invoke(activity, args, wrap_runtime: {}, container_activity: container_activity_for(activity), **circuit_options) ⇒ Object

Compute runtime arguments necessary to execute a taskWrap per task of the activity. This method is the top-level entry, called only once for the entire activity graph.

:container_activity

the top-most “activity”. This only has to look like an Activity

and exposes a #[] interface so [:wrap_static] can be read and it's compatible to {Trace}.
It is the virtual activity that "hosts" the actual {activity}.


20
21
22
23
24
25
26
27
28
29
# File 'lib/trailblazer/activity/task_wrap.rb', line 20

def invoke(activity, args, wrap_runtime: {}, container_activity: container_activity_for(activity), **circuit_options)
  circuit_options = circuit_options.merge(
    runner:       TaskWrap::Runner,
    wrap_runtime: wrap_runtime,
    activity:     container_activity # for Runner. Ideally we'd have a list of all static_wraps here (even nested).
  )

  # signal, (ctx, flow), circuit_options =
  TaskWrap::Runner.(activity, args, **circuit_options)
end