GitHub

@@ -563,6 +563,24 @@ mrb_mod_instance_methods(mrb_state *mrb, mrb_value mod)

563563

return mod_instance_methods(mrb, mod, MT_NOPRIV);

564564

}

565565566+

static mrb_value

567+

mrb_mod_public_instance_methods(mrb_state *mrb, mrb_value mod)

568+

{

569+

return mod_instance_methods(mrb, mod, MT_PUBLIC);

570+

}

571+572+

static mrb_value

573+

mrb_mod_private_instance_methods(mrb_state *mrb, mrb_value mod)

574+

{

575+

return mod_instance_methods(mrb, mod, MT_PRIVATE);

576+

}

577+578+

static mrb_value

579+

mrb_mod_protected_instance_methods(mrb_state *mrb, mrb_value mod)

580+

{

581+

return mod_instance_methods(mrb, mod, MT_PROTECTED);

582+

}

583+566584

static int

567585

undefined_method_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m, void *p)

568586

{

@@ -683,6 +701,9 @@ mrb_mruby_metaprog_gem_init(mrb_state* mrb)

683701

mrb_define_method_id(mrb, mod, MRB_SYM(class_variable_set), mrb_mod_cvar_set, MRB_ARGS_REQ(2)); /* 15.2.2.4.18 */

684702

mrb_define_method_id(mrb, mod, MRB_SYM(included_modules), mrb_mod_included_modules, MRB_ARGS_NONE()); /* 15.2.2.4.30 */

685703

mrb_define_method_id(mrb, mod, MRB_SYM(instance_methods), mrb_mod_instance_methods, MRB_ARGS_ANY()); /* 15.2.2.4.33 */

704+

mrb_define_method_id(mrb, mod, MRB_SYM(public_instance_methods), mrb_mod_public_instance_methods, MRB_ARGS_OPT(1));

705+

mrb_define_method_id(mrb, mod, MRB_SYM(private_instance_methods), mrb_mod_private_instance_methods, MRB_ARGS_OPT(1));

706+

mrb_define_method_id(mrb, mod, MRB_SYM(protected_instance_methods), mrb_mod_protected_instance_methods, MRB_ARGS_OPT(1));

686707

mrb_define_method_id(mrb, mod, MRB_SYM(undefined_instance_methods), mrb_mod_undefined_methods, MRB_ARGS_NONE());

687708

mrb_define_method_id(mrb, mod, MRB_SYM(remove_method), mrb_mod_remove_method, MRB_ARGS_ANY()); /* 15.2.2.4.41 */

688709

mrb_define_method_id(mrb, mod, MRB_SYM(method_removed), mrb_f_nil, MRB_ARGS_REQ(1));

Read the original on github.com ↗