instance method
Enumerable#take_while
() { (Elem) -> ::boolish } -> ::Array[Elem]
() -> ::Enumerator[Elem, ::Array[Elem]]
take_while {|element| ... } → array
take_while → enumerator
enum.c
View on GitHub ↗
static VALUE
enum_take_while(VALUE obj)
{
VALUE ary;
RETURN_ENUMERATOR(obj, 0, 0);
ary = rb_ary_new();
rb_block_call(obj, id_each, 0, 0, take_while_i, ary);
return ary;
}
Calls the block with successive elements as long as the block returns a truthy value; returns an array of all elements up to that point:
Example
(1..4).take_while{|i| i < 3 } # => [1, 2] h = {foo: 0, bar: 1, baz: 2} h.take_while{|element| key, value = *element; value < 2 } # => [[:foo, 0], [:bar, 1]]
With no block given, returns an Enumerator.