Class: RubyTransform::Transformers::Composite

Inherits:
RubyTransform::Transformer show all
Defined in:
lib/ruby_transform/transformers/composite.rb

Overview

Composite Transformer

Combines transformations by chaining them.

Example:

RubyTransform::Transformers::Composite.new([
  RubyTransform::Transformers::Eachifier.new,
  RubyTransform::Transformers::BlockMethodToProcifier.new,
  RubyTransform::Transformers::Tapifier.new
])

Instance Method Summary collapse

Methods inherited from RubyTransform::Transformer

#transform

Methods included from RubyTransform::TransformerHelpers

#sexp?

Constructor Details

#initialize(transformers = []) ⇒ Composite

Returns a new instance of Composite.



16
17
18
19
20
21
22
23
24
# File 'lib/ruby_transform/transformers/composite.rb', line 16

def initialize(transformers = [])
  class_eval do
    define_method :transform do |e|
      transformers.inject(e) do |transformed, transformer|
        transformer.transform(transformed)
      end
    end
  end
end