Method: Trailblazer::Activity::DSL::Linear::Helper#Subprocess

Defined in:
lib/trailblazer/activity/dsl/linear/helper.rb

#Subprocess(activity, patch: {}, strict: false) ⇒ Object

Computes the :outputs options for activity.

Parameters:

  • :strict

    If true, all outputs of activity will be wired to the track named after the output’s semantic.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/trailblazer/activity/dsl/linear/helper.rb', line 67

def Subprocess(activity, patch: {}, strict: false)
  activity = Linear::Patch.customize(activity, options: patch)

  outputs  = activity.to_h[:outputs]
  options  = {}

  if strict
    options.merge!(
      outputs.collect { |output| [Normalizer::OutputTuples::Output::Semantic.new(output.semantic, true), Track(output.semantic)] }.to_h
    )
  end

  {
    task:    activity,
    outputs: outputs.collect { |output| [output.semantic, output] }.to_h,
  }
    .merge(options)
end