Method: Enumerator#peek_values

Defined in:
enumerator.c

#peek_valuesArray

Returns the next object as an array in the enumerator, but don't move the internal position forward. When the position reached at the end, StopIteration is raised.

o = Object.new
def o.each
  yield
  yield 1
  yield 1, 2
end
e = o.to_enum
p e.peek_values    #=> []
e.next
p e.peek_values    #=> [1]
p e.peek_values    #=> [1]
e.next
p e.peek_values    #=> [1, 2]
e.next
p e.peek_values    # raises StopIteration

Returns:


# File 'enumerator.c'

/*
 * call-seq:
 *   e.peek_values   -> array
 *
 * Returns the next object as an array in the enumerator,
 * but don't move the internal position forward.
 * When the position reached at the end, StopIteration is raised.
 *
 *   o = Object.new
 *   def o.each
 *     yield
 *     yield 1
 *     yield 1, 2
 *   end
 *   e = o.to_enum
 *   p e.peek_values    #=> []
 *   e.next
 *   p e.peek_values    #=> [1]
 *   p e.peek_values    #=> [1]
 *   e.next
 *   p e.peek_values    #=> [1, 2]
 *   e.next
 *   p e.peek_values    # raises StopIteration
 *
 */

static VALUE
enumerator_peek_values_m(VALUE obj)
{
    return rb_ary_dup(enumerator_peek_values(obj));
}