Method: Enumerator::Chain#rewind
- Defined in:
- enumerator.c
#rewind ⇒ Object
Rewinds the enumerator chain by calling the “rewind” method on each enumerable in reverse order. Each call is performed only if the enumerable responds to the method.
3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 |
# File 'enumerator.c', line 3313
static VALUE
enum_chain_rewind(VALUE obj)
{
struct enum_chain *objptr = enum_chain_ptr(obj);
VALUE enums = objptr->enums;
long i;
for (i = objptr->pos; 0 <= i && i < RARRAY_LEN(enums); objptr->pos = --i) {
rb_check_funcall(RARRAY_AREF(enums, i), id_rewind, 0, 0);
}
return obj;
}
|