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