From 3e188358d19efc4aabf3ca2999562c3cc9522e8f Mon Sep 17 00:00:00 2001 From: Austin Ziegler Date: Sun, 20 Jan 2013 22:02:01 -0500 Subject: Fixing an issue with Diff::LCS.lcs. - Only on 1.8.7. Found by travis-ci.org. --- lib/diff/lcs.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib/diff/lcs.rb') diff --git a/lib/diff/lcs.rb b/lib/diff/lcs.rb index d8b6f08..5cb58ed 100644 --- a/lib/diff/lcs.rb +++ b/lib/diff/lcs.rb @@ -221,13 +221,12 @@ class << Diff::LCS def lcs(seq1, seq2, &block) #:yields seq1[i] for each matched: matches = Diff::LCS::Internals.lcs(seq1, seq2) ret = [] + string = seq.kind_of? String matches.each_with_index do |e, i| unless matches[i].nil? - if block_given? - ret << (yield seq1[i]) - else - ret << seq1[i] - end + v = string ? seq1[i, 1] : seq1[i] + v = block[v] if block + ret << v end end ret -- cgit v1.2.1