Class: Diff::Combined

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/diff/combined.rb

Defined Under Namespace

Classes: Row

Instance Method Summary collapse

Constructor Details

#initialize(diffs) ⇒ Combined

Returns a new instance of Combined.



30
31
32
# File 'lib/diff/combined.rb', line 30

def initialize(diffs)
  @diffs = diffs
end

Instance Method Details

#eachObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/diff/combined.rb', line 34

def each
  @offsets = @diffs.map { 0 }

  loop do
    @diffs.each_with_index do |diff, i|
      consume_deletions(diff, i) { |row| yield row }
    end

    return if complete?

    edits = offset_diffs.map { |offset, diff| diff[offset] }
    @offsets.map! { |offset| offset + 1 }

    yield Row.new(edits)
  end
end