Method: ArrayDiff#makediff

Defined in:
lib/array_diff.rb

#makediff(a, b) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/array_diff.rb', line 55

def makediff(a, b)
  mvector = ArrayDiff.lcs(a, b)
  ai = bi = 0
  while ai < mvector.length
    bline = mvector[ai]
    if bline
  while bi < bline
    discardb(bi, b[bi])
    bi += 1
  end
  match(ai, bi)
  bi += 1
    else
  discarda(ai, a[ai])
    end
    ai += 1
  end
  while ai < a.length
    discarda(ai, a[ai])
    ai += 1
  end
  while bi < b.length
    discardb(bi, b[bi])
    bi += 1
  end
  match(ai, bi)
  1
end