Bug #6158 ยป lazy_bang.diff
my_enumerator.c 2012-03-17 00:29:29.524453207 +0200 | ||
---|---|---|
}
|
||
static VALUE
|
||
lazy_map_bang(VALUE obj)
|
||
{
|
||
VALUE result = lazy_map(obj);
|
||
return rb_funcall(result, rb_intern("to_a"), 0, 0);
|
||
}
|
||
static VALUE
|
||
lazy_flat_map_i(VALUE i, VALUE yielder, int argc, VALUE *argv)
|
||
{
|
||
return rb_funcall2(yielder, id_yield, argc, argv);
|
||
... | ... | |
rb_define_method(rb_cEnumerator, "rewind", enumerator_rewind, 0);
|
||
rb_define_method(rb_cEnumerator, "inspect", enumerator_inspect, 0);
|
||
/* Lazy */
|
||
/* Enumerable::Lazy */
|
||
rb_cLazy = rb_define_class_under(rb_cEnumerator, "Lazy", rb_cEnumerator);
|
||
rb_define_method(rb_mEnumerable, "lazy", enumerable_lazy, 0);
|
||
rb_define_method(rb_cLazy, "initialize", lazy_initialize, -1);
|
||
rb_define_method(rb_cLazy, "map", lazy_map, 0);
|
||
rb_define_method(rb_cLazy, "map!", lazy_map_bang, 0);
|
||
rb_define_method(rb_cLazy, "flat_map", lazy_flat_map, 0);
|
||
rb_define_method(rb_cLazy, "select", lazy_select, 0);
|
||
rb_define_method(rb_cLazy, "reject", lazy_reject, 0);
|