Method: Grit::Merge#initialize

Defined in:
lib/grit/merge.rb

#initialize(str) ⇒ Merge

Returns a new instance of Merge.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/grit/merge.rb', line 11

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