From dd52b881017ae2c39d8afeed4f0560eff19031da Mon Sep 17 00:00:00 2001 From: Christopher Aue Date: Tue, 18 Jul 2017 20:47:05 +0200 Subject: implemented Module#singleton_class? --- mrbgems/mruby-class-ext/src/class.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'mrbgems/mruby-class-ext/src/class.c') diff --git a/mrbgems/mruby-class-ext/src/class.c b/mrbgems/mruby-class-ext/src/class.c index 8ca7d66c2..5506c4829 100644 --- a/mrbgems/mruby-class-ext/src/class.c +++ b/mrbgems/mruby-class-ext/src/class.c @@ -9,12 +9,19 @@ mrb_mod_name(mrb_state *mrb, mrb_value self) return mrb_nil_p(name)? name : mrb_str_dup(mrb, name); } +static mrb_value +mrb_mod_singleton_class_p(mrb_state *mrb, mrb_value self) +{ + return mrb_bool_value(mrb_type(self) == MRB_TT_SCLASS); +} + void mrb_mruby_class_ext_gem_init(mrb_state *mrb) { struct RClass *mod = mrb->module_class; mrb_define_method(mrb, mod, "name", mrb_mod_name, MRB_ARGS_NONE()); + mrb_define_method(mrb, mod, "singleton_class?", mrb_mod_singleton_class_p, MRB_ARGS_NONE()); } void -- cgit v1.2.3