Class: Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable::Conditioned

Inherits:
Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable show all
Defined in:
lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb

Overview

Set variable on ctx if condition is true.

Instance Attribute Summary

Attributes inherited from Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable

#name

Instance Method Summary collapse

Methods inherited from Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable

call_filter, set_variable, set_variable_for_filter

Constructor Details

#initialize(condition:, **options) ⇒ Conditioned

Returns a new instance of Conditioned.



126
127
128
129
130
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 126

def initialize(condition:, **options)
  super(**options)

  @condition = condition # DISCUSS: adding this as an "optional" step in a "Railway"
end

Instance Method Details

#call(wrap_ctx, original_args) ⇒ Object



132
133
134
135
136
137
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 132

def call(wrap_ctx, original_args)
  decision, _ = SetVariable.call_filter(@condition, wrap_ctx, original_args)

  return super if decision
  return wrap_ctx, original_args
end