140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
# File 'lib/git_commit_notifier/diff_to_html.rb', line 140
def lcs_diff(removals, additions)
callback = DiffCallback.new
s1 = (removals)
s2 = (additions)
s1 = tokenize_string(s1)
s2 = tokenize_string(s2)
Diff::LCS.traverse_balanced(s1, s2, callback)
processor = ResultProcessor.new(callback.tags)
diff_for_removals, diff_for_additions = processor.results
result = []
ln_start = removals[0][:removed]
diff_for_removals.each_with_index do |line, i|
result << { :removed => ln_start + i, :added => nil, :op => :removal, :content => line}
end
ln_start = additions[0][:added]
diff_for_additions.each_with_index do |line, i|
result << { :removed => nil, :added => ln_start + i, :op => :addition, :content => line}
end
result
end
|