global

def lcs(seq1, seq2, &block) # :yields: seq1[i] for each matched

:yields: seq1[i] for each matched
def lcs(seq1, seq2, &block) # :yields: seq1[i] for each matched
  matches = Diff::LCS::Internals.lcs(seq1, seq2)
  ret = []
  string = seq1.is_a? String
  matches.each_index do |i|
    next if matches[i].nil?
    v = string ? seq1[i, 1] : seq1[i]
    v = block[v] if block
    ret << v
  end
  ret
end