Class: Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable
- Inherits:
-
Object
- Object
- Trailblazer::Activity::DSL::Linear::VariableMapping::SetVariable
- Defined in:
- lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb
Overview
TODO: * ALL FILTERS and conditions expose circuit-step interface. Call user_filter and set return value as variable on aggregate.
Direct Known Subclasses
AddVariables, Conditioned, Default, Delete, Output, ReadFromAggregate
Defined Under Namespace
Classes: Conditioned, Default, Delete, Output, ReadFromAggregate
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
TODO: used when adding to pipeline, change to to_h.
Class Method Summary collapse
-
.call_filter(filter, wrap_ctx, args, circuit_options) ⇒ Object
Call a filter with a Circuit-Step interface.
- .set_variable(value, write_name, wrap_ctx, original_args) ⇒ Object
- .set_variable_for_filter(filter, write_name, wrap_ctx, original_args) ⇒ Object
Instance Method Summary collapse
- #call(wrap_ctx, original_args, filter = @filter) ⇒ Object
-
#initialize(write_name:, filter:, user_filter:, name:) ⇒ SetVariable
constructor
A new instance of SetVariable.
Constructor Details
#initialize(write_name:, filter:, user_filter:, name:) ⇒ SetVariable
Returns a new instance of SetVariable.
92 93 94 95 96 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 92 def initialize(write_name:, filter:, user_filter:, name:, **) @write_name = write_name @filter = filter @name = name end |
Instance Attribute Details
#name ⇒ Object (readonly)
TODO: used when adding to pipeline, change to to_h
98 99 100 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 98 def name @name end |
Class Method Details
.call_filter(filter, wrap_ctx, args, circuit_options) ⇒ Object
Call a filter with a Circuit-Step interface.
114 115 116 117 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 114 def self.call_filter(filter, wrap_ctx, (args, )) value, _ = filter.(args, **) # circuit-step interface value end |
.set_variable(value, write_name, wrap_ctx, original_args) ⇒ Object
119 120 121 122 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 119 def self.set_variable(value, write_name, wrap_ctx, original_args) wrap_ctx[:aggregate][write_name] = value # yes, we're mutating, but this is ok as we're on some private hash. wrap_ctx # DISCUSS: could be omitted. end |
.set_variable_for_filter(filter, write_name, wrap_ctx, original_args) ⇒ Object
106 107 108 109 110 111 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 106 def self.set_variable_for_filter(filter, write_name, wrap_ctx, original_args) value = call_filter(filter, wrap_ctx, original_args) wrap_ctx = set_variable(value, write_name, wrap_ctx, original_args) wrap_ctx end |
Instance Method Details
#call(wrap_ctx, original_args, filter = @filter) ⇒ Object
100 101 102 103 104 |
# File 'lib/trailblazer/activity/dsl/linear/feature/variable_mapping/runtime.rb', line 100 def call(wrap_ctx, original_args, filter = @filter) wrap_ctx = self.class.set_variable_for_filter(filter, @write_name, wrap_ctx, original_args) return wrap_ctx, original_args end |