summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-05-17 02:44:41 +0900
committerYukihiro Matsumoto <[email protected]>2012-05-17 02:44:41 +0900
commit25415302399055a566e4d55b6c165937943aa678 (patch)
tree01dacdfc5cf9166b467cf710099fc3bd41c22362 /src/class.c
parentb706b4cba4181e2eb0df7e394a8cb2abc0d4cd11 (diff)
downloadmruby-25415302399055a566e4d55b6c165937943aa678.tar.gz
mruby-25415302399055a566e4d55b6c165937943aa678.zip
add mrb_define_singleton_method/mrb_define_module_function
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c
index 7cb25f5c4..9bb924df0 100644
--- a/src/class.c
+++ b/src/class.c
@@ -578,6 +578,19 @@ mrb_define_class_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_
mrb_define_method_id(mrb, c->c, mrb_intern(mrb, name), func, aspec);
}
+void
+mrb_define_singleton_method(mrb_state *mrb, struct RObject *o, const char *name, mrb_func_t func, int aspec)
+{
+ mrb_define_method_id(mrb, mrb_singleton_class_ptr(mrb, o->c), mrb_intern(mrb, name), func, aspec);
+}
+
+void
+mrb_define_module_function(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t func, int aspec)
+{
+ mrb_define_class_method(mrb, c, name, func, aspec);
+ mrb_define_method(mrb, c, name, func, aspec);
+}
+
struct RProc*
mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)
{