module Polyfill::V2_6::Array

Public Instance Methods

difference(*arrays) click to toggle source
# File lib/polyfill/v2_6/array.rb, line 4
def difference(*arrays)
  arrays.reduce([*self]) do |me, array|
    me - array
  end
end
to_h() click to toggle source
Calls superclass method
# File lib/polyfill/v2_6/array.rb, line 10
def to_h
  return super unless block_given?

  block = ::Proc.new

  pairs = map.with_index do |elem, i|
    pair = block.call(elem)

    unless pair.respond_to?(:to_ary)
      raise TypeError, "wrong element type #{pair.class} at #{i} (expected array)"
    end

    pair = pair.to_ary

    unless pair.length == 2
      raise ArgumentError, "wrong array length at #{i} (expected 2, was #{pair.length})"
    end

    pair
  end

  pairs.to_h
end
union(*arrays) click to toggle source
# File lib/polyfill/v2_6/array.rb, line 34
def union(*arrays)
  return self | [] if arrays.empty?

  arrays.reduce(self) do |me, array|
    me | array
  end
end