class DiffableArray

Constants

VERSION

Public Instance Methods

diff_merge(array) click to toggle source
# File lib/diffable_array.rb, line 4
def diff_merge(array)
  me = self.dup
  other = array.dup
  new_array = DiffableArray.new

  until me.length == 0 && other.length == 0
    new_array |= me + other if me.empty? || other.empty?
    break if other.empty? || me.empty?

    element = if other[1..-1].include?(me.first) && !me[1..-1].include?(other.first)
                other.slice!(0)
              else
                me.slice!(0)
              end

    new_array << element
  end

  new_array.uniq
end