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

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. Otherwise, set default_filter variable on ctx.

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(default_filter:, condition:, **options) ⇒ Default

Returns a new instance of Default.



143
144
145
146
147
148
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 143

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

  @default_filter = default_filter
  @condition      = condition
end

Instance Method Details

#call(wrap_ctx, original_args) ⇒ Object



150
151
152
153
154
155
156
157
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 150

def call(wrap_ctx, original_args)
  # FIXME: redundant with Conditioned.
  decision, _ = SetVariable.call_filter(@condition, wrap_ctx, original_args)

  filter = decision ? @filter : @default_filter

  super(wrap_ctx, original_args, filter)
end