class Enumerator::Product
def size
def size total_size = 1 @__enums.each do |enum| return nil unless enum.respond_to?(:size) size = enum.size return size if size == 0 || size == nil || size == Float::INFINITY || size == -Float::INFINITY return nil unless size.is_a?(Integer) total_size *= size end total_size end