module Abstractivator::Collections

Public Instance Methods

multizip(enumerables, pad_value=nil) click to toggle source
# File lib/abstractivator/collections.rb, line 3
def multizip(enumerables, pad_value=nil)
  es = enumerables.map(&:each)
  result = []
  fail_count = 0
  while fail_count < es.size do
    fail_count = 0
    heads = es.map do |e|
      begin
        e.next
      rescue StopIteration
        fail_count += 1
        pad_value
      end
    end
    result << heads if fail_count < es.size
  end
  result
end