GitHub

@@ -1712,6 +1712,30 @@ mrb_mod_protected(mrb_state *mrb, mrb_value mod)

17121712

return mod;

17131713

}

171417141715+

static mrb_value

1716+

top_public(mrb_state *mrb, mrb_value self)

1717+

{

1718+

self = mrb_obj_value(mrb->object_class);

1719+

mrb_mod_visibility(mrb, self, MT_PUBLIC);

1720+

return self;

1721+

}

1722+1723+

static mrb_value

1724+

top_private(mrb_state *mrb, mrb_value self)

1725+

{

1726+

self = mrb_obj_value(mrb->object_class);

1727+

mrb_mod_visibility(mrb, self, MT_PRIVATE);

1728+

return self;

1729+

}

1730+1731+

static mrb_value

1732+

top_protected(mrb_state *mrb, mrb_value self)

1733+

{

1734+

self = mrb_obj_value(mrb->object_class);

1735+

mrb_mod_visibility(mrb, self, MT_PROTECTED);

1736+

return self;

1737+

}

1738+17151739

MRB_API struct RClass*

17161740

mrb_singleton_class_ptr(mrb_state *mrb, mrb_value v)

17171741

{

@@ -3140,4 +3164,7 @@ mrb_init_class(mrb_state *mrb)

31403164

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(inspect), inspect_main, MRB_ARGS_NONE());

31413165

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(to_s), inspect_main, MRB_ARGS_NONE());

31423166

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(define_method), top_define_method, MRB_ARGS_ARG(1,1));

3167+

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(public), top_public, MRB_ARGS_ANY());

3168+

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(private), top_private, MRB_ARGS_ANY());

3169+

mrb_define_singleton_method_id(mrb, mrb->top_self, MRB_SYM(protected), top_protected, MRB_ARGS_ANY());

31433170

}

Read the original on github.com ↗