class Dyph::MergeResult

Public Class Methods

new(results, join_function, conflict: false, conflict_handler: nil) click to toggle source

@param results [Array] diff3 output @param join_function [Proc] how to join the results together @param conflict [Boolean] sets the conflict's state @param conflict_handler [Proc] what to do with the conflicted results

# File lib/dyph/merge_result.rb, line 8
def initialize(results, join_function, conflict: false, conflict_handler: nil)
  @results = results
  @join_function = join_function
  @conflict_handler = conflict_handler
  @conflict = conflict
end

Public Instance Methods

conflict?() click to toggle source

@return [Boolean] conflict state

# File lib/dyph/merge_result.rb, line 26
def conflict?
  @conflict
end
joined_results() click to toggle source

Applies the join function or conflict handler to diff3 results array @return the results with the methods provided by user or defaults applied

# File lib/dyph/merge_result.rb, line 32
def joined_results
  if conflict?
    if @conflict_handler
      @conflict_handler[results]
    else
      results
    end
  else
    first, rest = results.first, results[1..-1]
    rest.reduce(first) { |rs, r| rs.combine(r) }.apply(@join_function).result
  end
end
results() click to toggle source

@return [Array] of outcomes (Outcome::Conflicted or Outcome::Resolved)

# File lib/dyph/merge_result.rb, line 16
def results
  @results
end
success?() click to toggle source

@return [Boolean] success state

# File lib/dyph/merge_result.rb, line 21
def success?
  !@conflict
end