class StructureConflictResolver::MergeConflict

Constants

CONFLICT_A
CONFLICT_B
DIVIDER

Attributes

current_line[RW]
head_branch_blob[RW]
original_blob[RW]
our_commit_blob[RW]

Public Class Methods

new() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 13
def initialize
  @original_blob    = String.new
  @head_branch_blob = String.new
  @our_commit_blob  = String.new
end

Public Instance Methods

parse!(line) click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 38
def parse!(line)
  @current_line = line
  enter_head_blob   if may_enter_head_blob?
  enter_our_blob    if may_enter_our_blob?
  complete_scanning if may_complete_scanning?

  store_lines!
end
parse_error?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 47
def parse_error?
  !not_detected? && !scanning_completed?
end
resolvable?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 51
def resolvable?
  !resolved_text.nil?
end
resolved_text() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 55
def resolved_text
  @resolved_text ||= StructureType.from(head_branch_blob + our_commit_blob).resolved
rescue
end

Private Instance Methods

at_divider?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 83
def at_divider?
  current_line =~ DIVIDER
end
git_noise?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 71
def git_noise?
  matches_conflict_start? || at_divider? || matches_conflict_end?
end
matches_conflict_end?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 79
def matches_conflict_end?
  current_line =~ CONFLICT_B
end
matches_conflict_start?() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 75
def matches_conflict_start?
  current_line =~ CONFLICT_A
end
store_lines!() click to toggle source
# File lib/structure_conflict_resolver/merge_conflict.rb, line 62
def store_lines!
  original_blob << current_line if in_head_blob? || in_our_blob? || git_noise?

  unless git_noise?
    head_branch_blob << current_line if in_head_blob?
    our_commit_blob  << current_line if in_our_blob?
  end
end