lib/grit/merge.rb (36 lines of code) (raw):

module Grit class Merge STATUS_BOTH = 'both' STATUS_OURS = 'ours' STATUS_THEIRS = 'theirs' attr_reader :conflicts, :text, :sections def initialize(str) status = STATUS_BOTH section = 1 @conflicts = 0 @text = {} lines = str.split("\n") lines.each do |line| if /^<<<<<<< (.*?)/.match(line) status = STATUS_OURS @conflicts += 1 section += 1 elsif line == '=======' status = STATUS_THEIRS elsif /^>>>>>>> (.*?)/.match(line) status = STATUS_BOTH section += 1 else @text[section] ||= {} @text[section][status] ||= [] @text[section][status] << line end end @text = @text.values @sections = @text.size end # Pretty object inspection def inspect %Q{#<Grit::Merge} end end # Merge end # Grit