diff options
Diffstat (limited to 'ext/-test-/enumerator_kw/enumerator_kw.c')
-rw-r--r-- | ext/-test-/enumerator_kw/enumerator_kw.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ext/-test-/enumerator_kw/enumerator_kw.c b/ext/-test-/enumerator_kw/enumerator_kw.c new file mode 100644 index 0000000000..cd6099ffb3 --- /dev/null +++ b/ext/-test-/enumerator_kw/enumerator_kw.c @@ -0,0 +1,21 @@ +#include <ruby.h> + +static VALUE +enumerator_kw(int argc, VALUE *argv, VALUE self) +{ + VALUE obj, opt, enum_args[4]; + enum_args[0] = Qnil; + enum_args[1] = Qnil; + rb_scan_args(argc, argv, "01*:", enum_args, enum_args+1, &opt); + enum_args[3] = self; + enum_args[2] = opt; + RETURN_SIZED_ENUMERATOR_KW(self, 4, enum_args, 0, RB_NO_KEYWORDS); + return rb_yield_values_kw(4, enum_args, RB_NO_KEYWORDS); +} + +void +Init_enumerator_kw(void) { + VALUE module = rb_define_module("Bug"); + module = rb_define_module_under(module, "EnumeratorKw"); + rb_define_method(module, "m", enumerator_kw, -1); +} |