Module: Trailblazer::Activity::DSL::Linear
- Includes:
- Helper
- Defined in:
- lib/trailblazer/activity/dsl/linear.rb,
lib/trailblazer/activity/dsl/linear/state.rb,
lib/trailblazer/activity/dsl/linear/helper.rb,
lib/trailblazer/activity/dsl/linear/compiler.rb,
lib/trailblazer/activity/dsl/linear/strategy.rb,
lib/trailblazer/activity/dsl/linear/normalizer.rb,
lib/trailblazer/activity/dsl/linear/variable_mapping.rb
Overview
Implementing a specific DSL, simplified version of the DSL from 2017.
Produces Implementation and Intermediate.
Defined Under Namespace
Modules: Compiler, DSL, Helper, Insert, Normalizer, Search, Strategy, VariableMapping Classes: Sequence, State
Class Method Summary collapse
-
.Merge(old_seq, new_seq, end_id: "End.success") ⇒ Object
DISCUSS: also Insert.
-
.strip_start_and_ends(seq, end_id:) ⇒ Object
TODO: introduce Merge namespace?.
-
.VariableMapping(input: VariableMapping.default_input, output: VariableMapping.default_output) ⇒ Object
Normalizer-steps to implement :input and :output Returns an Extension instance to be thrown into the ‘step` DSL arguments.
Methods included from Helper
Class Method Details
.Merge(old_seq, new_seq, end_id: "End.success") ⇒ Object
DISCUSS: also Insert
149 150 151 152 153 |
# File 'lib/trailblazer/activity/dsl/linear.rb', line 149 def Merge(old_seq, new_seq, end_id: "End.success") # DISCUSS: also Insert new_seq = strip_start_and_ends(new_seq, end_id: end_id) seq = Insert.Prepend(old_seq, new_seq, end_id) end |
.strip_start_and_ends(seq, end_id:) ⇒ Object
TODO: introduce Merge namespace?
154 155 156 157 158 |
# File 'lib/trailblazer/activity/dsl/linear.rb', line 154 def strip_start_and_ends(seq, end_id:) # TODO: introduce Merge namespace? cut_off_index = end_id.nil? ? seq.size : Insert.find_index(seq, end_id) # find the "first" end. seq[1..cut_off_index-1] end |
.VariableMapping(input: VariableMapping.default_input, output: VariableMapping.default_output) ⇒ Object
Normalizer-steps to implement :input and :output Returns an Extension instance to be thrown into the ‘step` DSL arguments.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/trailblazer/activity/dsl/linear/variable_mapping.rb', line 7 def self.VariableMapping(input: VariableMapping.default_input, output: VariableMapping.default_output) input = VariableMapping::Input::Scoped.new( Trailblazer::Option::KW( VariableMapping::filter_for(input) ) ) output = VariableMapping::Output::Unscoped.new( Trailblazer::Option::KW( VariableMapping::filter_for(output) ) ) TaskWrap::Extension( merge: TaskWrap::VariableMapping.merge_for(input, output, id: input.object_id), # wraps filters: {Input(input), Output(output)} ) end |