class Trailblazer::Activity::DSL::Linear::State::Normalizer

Compiles and maintains all final normalizers for a specific DSL.

Public Class Methods

new(normalizer_sequences) click to toggle source
gets instantiated at compile time.

We simply compile the activities that represent the normalizers for step, pass, etc. This can happen at compile-time, as normalizers are stateless.

# File lib/trailblazer/activity/dsl/linear/state.rb, line 51
def initialize(normalizer_sequences)
  @normalizers = Hash[
    normalizer_sequences.collect { |name, seq| [name, compile_normalizer(seq)] }
  ]
end

Public Instance Methods

call(name, *args) click to toggle source

Execute the specific normalizer (step, fail, pass) for a particular option set provided by the DSL user. This is usually when you call Operation::step.

# File lib/trailblazer/activity/dsl/linear/state.rb, line 59
def call(name, *args)
  normalizer = @normalizers.fetch(name)
  _signal, (options, _) = normalizer.(*args)
  options
end
compile_normalizer(normalizer_sequence) click to toggle source
# File lib/trailblazer/activity/dsl/linear/state.rb, line 42
def compile_normalizer(normalizer_sequence)
  process = Trailblazer::Activity::DSL::Linear::Compiler.(normalizer_sequence)
  process.to_h[:circuit]
end