/* :nodoc: */ static VALUE generator_each(VALUE obj) { struct generator *ptr = generator_ptr(obj); VALUE yielder; yielder = yielder_new(); return rb_proc_call(ptr->proc, rb_ary_new3(1, yielder)); }
/* :nodoc: */ static VALUE generator_each(int argc, VALUE *argv, VALUE obj) { struct generator *ptr = generator_ptr(obj); VALUE args = rb_ary_new2(argc + 1); rb_ary_push(args, yielder_new()); if (argc > 0) { rb_ary_cat(args, argv, argc); } return rb_proc_call(ptr->proc, args); }