# -*- encoding : utf-8 -*- module Git module Diff class InlineCallback < ::Diff::Renderer::Base def before_headerblock(block) end def after_headerblock(block) end def headerline(line) " ... ... #{line} " end def addline(line) " #{line.new_number}
#{render_line(line)}
" end def remline(line) " #{line.old_number}
#{render_line(line)}
" end def modline(line) " #{line.old_number} #{line.new_number}
#{render_line(line)}
" end def unmodline(line) " #{line.old_number} #{line.new_number}
#{render_line(line)}
" end def sepline(line) " … … " end def nonewlineline(line) " #{line.old_number} #{line.new_number}
#{render_line(line)}
" end protected def escape(str) str.to_s.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"') end def render_line(line) res = '' if line.inline_changes? prefix, changed, postfix = line.segments.map{|segment| escape(segment) } res += "#{prefix}#{changed}#{postfix}" else res += escape(line) end res += '' res end end end end