/* * call-seq: * enum.each {...} * * Iterates the given block using the object and the method specified * in the first place. * */ static VALUE enumerator_each(obj) VALUE obj; { VALUE val; obj = (VALUE)rb_node_newnode(NODE_MEMO, rb_ivar_get(obj, id_enum_obj), rb_to_id(rb_ivar_get(obj, id_enum_method)), rb_ivar_get(obj, id_enum_args)); val = rb_iterate((VALUE (*)_((VALUE)))enumerator_iter, obj, rb_yield, 0); return val; }