diff options
Diffstat (limited to 'jni/ruby/ext/-test-/symbol/init.c')
-rw-r--r-- | jni/ruby/ext/-test-/symbol/init.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/jni/ruby/ext/-test-/symbol/init.c b/jni/ruby/ext/-test-/symbol/init.c new file mode 100644 index 0000000..9e42e1a --- /dev/null +++ b/jni/ruby/ext/-test-/symbol/init.c @@ -0,0 +1,25 @@ +#include "ruby.h" + +#define init(n) {void Init_##n(VALUE klass); Init_##n(klass);} + +static VALUE +sym_find(VALUE dummy, VALUE sym) +{ + return rb_check_symbol(&sym); +} + +static VALUE +sym_pinneddown_p(VALUE dummy, VALUE sym) +{ + return rb_check_id(&sym) ? Qtrue : Qfalse; +} + +void +Init_symbol(void) +{ + VALUE mBug = rb_define_module("Bug"); + VALUE klass = rb_define_class_under(mBug, "Symbol", rb_cSymbol); + rb_define_singleton_method(klass, "find", sym_find, 1); + rb_define_singleton_method(klass, "pinneddown?", sym_pinneddown_p, 1); + TEST_INIT_FUNCS(init); +} |