diff options
| author | Corey Powell <[email protected]> | 2015-07-13 09:38:24 -0500 |
|---|---|---|
| committer | Corey Powell <[email protected]> | 2015-07-13 09:38:24 -0500 |
| commit | 668153092f48275279f85d2618fff6eb9730332c (patch) | |
| tree | 78905b61a9b9514ac8e72229f07ea5b935b3059f /src | |
| parent | 11dad715784a61174b68fba57f6dc6c5311e22e3 (diff) | |
| download | mruby-668153092f48275279f85d2618fff6eb9730332c.tar.gz mruby-668153092f48275279f85d2618fff6eb9730332c.zip | |
Added Module#method_removed hook
Diffstat (limited to 'src')
| -rw-r--r-- | src/class.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c index d83216cb4..0b00a6484 100644 --- a/src/class.c +++ b/src/class.c @@ -1945,6 +1945,7 @@ remove_method(mrb_state *mrb, mrb_value mod, mrb_sym mid) k = kh_get(mt, mrb, h, mid); if (k != kh_end(h)) { kh_del(mt, mrb, h, k); + mrb_funcall(mrb, mod, "method_removed", 1, mrb_symbol_value(mid)); return; } } @@ -2197,6 +2198,7 @@ mrb_init_class(mrb_state *mrb) mrb_define_method(mrb, mod, "public", mrb_mod_dummy_visibility, MRB_ARGS_ANY()); /* 15.2.2.4.38 */ mrb_define_method(mrb, mod, "remove_class_variable", mrb_mod_remove_cvar, MRB_ARGS_REQ(1)); /* 15.2.2.4.39 */ mrb_define_method(mrb, mod, "remove_method", mrb_mod_remove_method, MRB_ARGS_ANY()); /* 15.2.2.4.41 */ + mrb_define_method(mrb, mod, "method_removed", mrb_bob_init, MRB_ARGS_REQ(1)); /* 15.2.2.4.41 */ mrb_define_method(mrb, mod, "attr_reader", mrb_mod_attr_reader, MRB_ARGS_ANY()); /* 15.2.2.4.13 */ mrb_define_method(mrb, mod, "attr_writer", mrb_mod_attr_writer, MRB_ARGS_ANY()); /* 15.2.2.4.14 */ mrb_define_method(mrb, mod, "to_s", mrb_mod_to_s, MRB_ARGS_NONE()); |
