Class: Metamorpher::Transformer::Merger

Inherits:
Struct
  • Object
show all
Defined in:
lib/metamorpher/transformer/merger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#originalObject

Returns the value of attribute original

Returns:

  • (Object)

    the current value of original



5
6
7
# File 'lib/metamorpher/transformer/merger.rb', line 5

def original
  @original
end

Instance Method Details

#merge(*replacements, &block) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/metamorpher/transformer/merger.rb', line 6

def merge(*replacements, &block)
  original.dup.tap do |merged|
    replacements.sort.reduce(0) do |offset, replacement|
      yield replacement if block
      replacement = replacement.slide(offset)
      replacement.merge_into(merged)
      offset + replacement.offset
    end
  end
end