Class: Trailblazer::Activity::Magnetic::Normalizer
- Inherits:
-
Object
- Object
- Trailblazer::Activity::Magnetic::Normalizer
- Defined in:
- lib/trailblazer/activity/dsl/magnetic/builder/normalizer.rb
Overview
One Normalizer instance is called for every DSL call (step/pass/fail etc.) and normalizes/defaults the user options, such as setting ‘:id`, connecting the task’s outputs or wrapping the user’s task via TaskBuilder::Binary in order to translate true/false to ‘Right` or `Left`.
The Normalizer sits in the ‘@builder`, which receives all DSL calls from the Operation subclass.
Defined Under Namespace
Modules: Pipeline
Class Method Summary collapse
Instance Method Summary collapse
- #call(task, options) ⇒ Object
-
#initialize(task_builder:, default_outputs:, pipeline:, **options) ⇒ Normalizer
constructor
A new instance of Normalizer.
Constructor Details
#initialize(task_builder:, default_outputs:, pipeline:, **options) ⇒ Normalizer
Returns a new instance of Normalizer.
18 19 20 21 22 23 |
# File 'lib/trailblazer/activity/dsl/magnetic/builder/normalizer.rb', line 18 def initialize(task_builder:, default_outputs:, pipeline:, **) @task_builder = task_builder @default_outputs = default_outputs @pipeline = pipeline # TODO: test me. freeze end |
Class Method Details
.build(task_builder: Activity::TaskBuilder.method(:Binary), default_outputs: Builder::Path.default_outputs, pipeline: Pipeline, extension: [], **options) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/trailblazer/activity/dsl/magnetic/builder/normalizer.rb', line 9 def self.build(task_builder: Activity::TaskBuilder.method(:Binary), default_outputs: Builder::Path.default_outputs, pipeline: Pipeline, extension:[], **) return new( default_outputs: default_outputs, extension: extension, task_builder: task_builder, pipeline: pipeline, ), end |
Instance Method Details
#call(task, options) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/trailblazer/activity/dsl/magnetic/builder/normalizer.rb', line 25 def call(task, ) ctx = { task: task, options: , task_builder: @task_builder, default_outputs: @default_outputs, } signal, (ctx, ) = @pipeline.( [ctx], {} ) return ctx[:options][:task], ctx[:local_options], ctx[:connection_options], ctx[:sequence_options], ctx[:extension_options] end |