#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); }