Class: Diff::Myers
- Inherits:
-
Object
- Object
- Diff::Myers
- Defined in:
- lib/diff/myers.rb
Class Method Summary collapse
Instance Method Summary collapse
- #diff ⇒ Object
-
#initialize(a, b) ⇒ Myers
constructor
A new instance of Myers.
Constructor Details
#initialize(a, b) ⇒ Myers
Returns a new instance of Myers.
8 9 10 |
# File 'lib/diff/myers.rb', line 8 def initialize(a, b) @a, @b = a, b end |
Class Method Details
Instance Method Details
#diff ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/diff/myers.rb', line 12 def diff diff = [] backtrack do |prev_x, prev_y, x, y| a_line, b_line = @a[prev_x], @b[prev_y] if x == prev_x diff.push(Edit.new(:ins, nil, b_line)) elsif y == prev_y diff.push(Edit.new(:del, a_line, nil)) else diff.push(Edit.new(:eql, a_line, b_line)) end end diff.reverse end |