Sha256: 6c6f34f6282f3f5235005e49c9c732f2535c5968fcd691b76ae44ce9e0a83100
Contents?: true
Size: 815 Bytes
Versions: 4
Compression:
Stored size: 815 Bytes
Contents
require "attributable" module Metamorpher module Transformer Site = Struct.new(:original_position, :original_code, :transformed_code) do def slide(offset) new_position = (original_position.begin + offset)..(original_position.end + offset) Site.new(new_position, original_code, transformed_code) end def merge_into(destination) if original_position.begin > destination.size fail ArgumentError, "Position #{original_position} does not exist in: #{destination}" end destination[original_position] = transformed_code destination end def offset transformed_code.size - original_code.size end def <=>(other) original_position.begin <=> other.original_position.begin end end end end
Version data entries
4 entries across 4 versions & 1 rubygems