Sha256: f492b320acdb593c8c64f73d30a066a6033c0f1f205583e7a6c8fd2116b3e859
Contents?: true
Size: 1.2 KB
Versions: 11
Compression:
Stored size: 1.2 KB
Contents
module Diffy class SplitDiff def initialize(left, right, options = {}) @format = options[:format] || Diffy::Diff.default_format formats = Format.instance_methods(false).map { |x| x.to_s } unless formats.include?(@format.to_s) fail ArgumentError, "Format #{format.inspect} is not a valid format" end @diff = Diffy::Diff.new(left, right, options).to_s(@format) @left_diff, @right_diff = split end %w(left right).each do |direction| define_method direction do instance_variable_get("@#{direction}_diff") end end private def split [split_left, split_right] end def split_left case @format when :color @diff.gsub(/\033\[32m\+(.*)\033\[0m\n/, '') when :html, :html_simple @diff.gsub(%r{\s+<li class="ins"><ins>(.*)</ins></li>}, '') when :text @diff.gsub(/^\+(.*)\n/, '') end end def split_right case @format when :color @diff.gsub(/\033\[31m\-(.*)\033\[0m\n/, '') when :html, :html_simple @diff.gsub(%r{\s+<li class="del"><del>(.*)</del></li>}, '') when :text @diff.gsub(/^-(.*)\n/, '') end end end end
Version data entries
11 entries across 11 versions & 3 rubygems