module Dyph::Support::Collater
Public Instance Methods
collate_merge(merge_result, join_function, conflict_handler)
click to toggle source
# File lib/dyph/support/collater.rb, line 5 def collate_merge(merge_result, join_function, conflict_handler) if merge_result.empty? Dyph::MergeResult.new([Outcome::Resolved.new([])], join_function) else merge_result = combine_non_conflicts(merge_result) if (merge_result.length == 1 && merge_result.first.resolved?) Dyph::MergeResult.new(merge_result, join_function) else Dyph::MergeResult.new(merge_result, join_function, conflict: true, conflict_handler: conflict_handler) end end end
Private Instance Methods
combine_non_conflicts(results)
click to toggle source
@param [in] results @return the list of conflicts with contiguous parts merged if they are non_conflicts
# File lib/dyph/support/collater.rb, line 21 def combine_non_conflicts(results) results.reduce([]) do |rs, r| if rs.any? && rs.last.resolved? && r.resolved? rs.last.combine(r) else rs << r end rs end end