summaryrefslogtreecommitdiff
path: root/ext/-test-/enumerator_kw/enumerator_kw.c
blob: 947d2b37e624ad9d5c087c098f284d7ce6a22400 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <ruby.h>

static VALUE
enumerator_kw(int argc, VALUE *argv, VALUE self)
{
    VALUE 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);
}