Class: ONPDiff

Inherits:
Object
  • Object
show all
Defined in:
lib/onpdiff.rb

Overview

Use “An O(NP) Sequence Comparison Algorithm” as described by Sun Wu, Udi Manber and Gene Myers in publications.mpi-cbg.de/Wu_1990_6334.pdf

Instance Method Summary collapse

Constructor Details

#initialize(a, b) ⇒ ONPDiff

Returns a new instance of ONPDiff.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/onpdiff.rb', line 7

def initialize(a, b)
  @a, @b = a, b
  @m, @n = a.size, b.size
  @backtrack = []
  if @reverse = @m > @n
    @a, @b = @b, @a
    @m, @n = @n, @m
  end
  @offset = @m + 1
  @delta = @n - @m
end

Instance Method Details

#diffObject



19
20
21
# File 'lib/onpdiff.rb', line 19

def diff
  @diff ||= build_edit_script(compose)
end

#paragraph_diffObject



27
28
29
# File 'lib/onpdiff.rb', line 27

def paragraph_diff
  @paragraph_diff ||= build_paragraph_edit_script(diff)
end

#short_diffObject



23
24
25
# File 'lib/onpdiff.rb', line 23

def short_diff
  @short_diff ||= build_short_edit_script(compose)
end