Class: Trailblazer::Operation::Pipetree::Step

Inherits:
Object
  • Object
show all
Includes:
Uber::Callable
Defined in:
lib/trailblazer/operation/pipetree.rb

Overview

Allows defining dependencies and inject/override them via runtime options, if desired.

Instance Method Summary collapse

Constructor Details

#initialize(step, dependencies = {}) ⇒ Step

Returns a new instance of Step.



132
133
134
# File 'lib/trailblazer/operation/pipetree.rb', line 132

def initialize(step, dependencies={})
  @step, @dependencies = step, dependencies
end

Instance Method Details

#call(input, options) ⇒ Object



136
137
138
139
140
# File 'lib/trailblazer/operation/pipetree.rb', line 136

def call(input, options)
  @dependencies.each { |k, v| options[k] ||= v } # not sure i like this, but the step's API is cool.

  @step.(input, options)
end