Method: Enumerable#drop_while

Defined in:
enum.c

#drop_while {|obj| ... } ⇒ Array #drop_whileObject

Drops elements up to, but not including, the first element for which the block returns nil or false and returns an array containing the remaining elements.

If no block is given, an enumerator is returned instead.

a = [1, 2, 3, 4, 5, 0]
a.drop_while { |i| i < 3 }   #=> [3, 4, 5, 0]

Overloads:

  • #drop_while {|obj| ... } ⇒ Array

    Yields:

    • (obj)

    Returns:



2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
# File 'enum.c', line 2997

static VALUE
enum_drop_while(VALUE obj)
{
    VALUE result;
    struct MEMO *memo;

    RETURN_ENUMERATOR(obj, 0, 0);
    result = rb_ary_new();
    memo = MEMO_NEW(result, 0, FALSE);
    rb_block_call(obj, id_each, 0, 0, drop_while_i, (VALUE)memo);
    return result;
}