Sha256: 4a4ca73c40f20bfabfb0116174992711078578486d855f1c3876c9a601e65da4

Contents?: true

Size: 468 Bytes

Versions: 2

Compression:

Stored size: 468 Bytes

Contents

require "attributable"

module Metamorpher
  module Refactorer
    Merger = Struct.new(:original) do
      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
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
metamorpher-0.1.1 lib/metamorpher/refactorer/merger.rb
metamorpher-0.1.0 lib/metamorpher/refactorer/merger.rb