class Realize::Pipeline

Main runner that encapsulates a collection of transformers and knows how to kick off the transformation process.

Attributes

resolver[R]
transformers[R]

Public Class Methods

new(transformers = [], resolver: Objectable.resolver) click to toggle source
# File lib/realize/pipeline.rb, line 16
def initialize(transformers = [], resolver: Objectable.resolver)
  raise ArgumentError, 'resolver is required' unless resolver

  @resolver     = resolver
  @transformers = Transformers.array(transformers)

  freeze
end

Public Instance Methods

transform(record, time = Time.now.utc) click to toggle source
# File lib/realize/pipeline.rb, line 25
def transform(record, time = Time.now.utc)
  transformers.inject(record) do |memo, transformer|
    transformer.transform(resolver, memo, time, record)
  end
end