void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE)) { Check_Type(klass, T_CLASS); rb_add_method(rb_singleton_class(klass), ID_ALLOCATOR, NEW_CFUNC(func, 0), NOEX_PRIVATE); }
void rb_define_alloc_func(VALUE klass, VALUE (*func)(VALUE)) { // TODO #if 0 Check_Type(klass, T_CLASS); rb_add_method(rb_singleton_class(klass), ID_ALLOCATOR, NEW_CFUNC(func, 0), NOEX_PUBLIC); #endif }
void rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc) { rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PRIVATE); }
void rb_define_protected_method(VALUE klass, const char *name, VALUE (*func)(ANYARGS), int argc) { rb_add_method(klass, rb_intern(name), NEW_CFUNC(func, argc), NOEX_PROTECTED); }
void rb_define_method_id(VALUE klass, ID name, VALUE (*func)(ANYARGS), int argc) { rb_add_method(klass, name, NEW_CFUNC(func,argc), NOEX_PUBLIC); }