class Qwik::HTreeDiffHtmlGenerator
Public Class Methods
new(s1, s2)
click to toggle source
# File vendor/qwik/lib/qwik/htree-diff.rb, line 18 def initialize(s1, s2) @s1 = s1.gsub(/\r/, "") @s2 = s2.gsub(/\r/, "") end
Public Instance Methods
to_txt()
click to toggle source
# File vendor/qwik/lib/qwik/htree-diff.rb, line 23 def to_txt a1 = @s1.split("\n").collect! {|s| "#{s}\n"} a2 = @s2.split("\n").collect! {|s| "#{s}\n"} Diff.diff(a1, a2) end
to_xml()
click to toggle source
# File vendor/qwik/lib/qwik/htree-diff.rb, line 29 def to_xml g = HTree::Generator.new src = @s1.split("\n").collect {|s| "#{s.escapeHTML}" } si = 0 di = 0 e = [] to_txt.each {|action, position, elements| case action when :- while si < position e << HTree::Text.new(src[si]) e << g.br si += 1 di += 1 end si += elements.length elements.each {|l| e << g.del{l.chomp} e << g.br } when :+ while di < position e << HTree::Text.new(src[si]) e << g.br si += 1 di += 1 end di += elements.length elements.each {|l| e << g.ins{l.chomp} e << g.br } end } while si < src.length e << HTree::Text.new(src[si]) e << g.br si += 1 end e end