Sha256: 229034a104a8f96d3cf16a9c012a866e7a53fb214b1880a6973ef41bd101061f

Contents?: true

Size: 567 Bytes

Versions: 2

Compression:

Stored size: 567 Bytes

Contents

require "diffable_array/version"

class DiffableArray < Array
  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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
diffable_array-0.0.2 lib/diffable_array.rb
diffable_array-0.0.1 lib/diffable_array.rb