From 2d520eaf6f60e1bb5224b56f433fc9187b10c6cf Mon Sep 17 00:00:00 2001 From: KOBAYASHI Shuji Date: Wed, 24 Jul 2019 20:13:26 +0900 Subject: Move `NilClass#to_h` to `mruby-object-ext` from `mruby-enum-ext` --- mrbgems/mruby-object-ext/src/object.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'mrbgems/mruby-object-ext/src') diff --git a/mrbgems/mruby-object-ext/src/object.c b/mrbgems/mruby-object-ext/src/object.c index 85db75b28..0aedc9a73 100644 --- a/mrbgems/mruby-object-ext/src/object.c +++ b/mrbgems/mruby-object-ext/src/object.c @@ -1,6 +1,7 @@ #include #include #include +#include #include /* @@ -31,6 +32,19 @@ nil_to_f(mrb_state *mrb, mrb_value obj) } #endif +/* + * call-seq: + * nil.to_h -> {} + * + * Always returns an empty hash. + */ + +static mrb_value +nil_to_h(mrb_state *mrb, mrb_value obj) +{ + return mrb_hash_new(mrb); +} + /* * call-seq: * nil.to_i -> 0 @@ -117,6 +131,7 @@ mrb_mruby_object_ext_gem_init(mrb_state* mrb) #ifndef MRB_WITHOUT_FLOAT mrb_define_method(mrb, n, "to_f", nil_to_f, MRB_ARGS_NONE()); #endif + mrb_define_method(mrb, n, "to_h", nil_to_h, MRB_ARGS_NONE()); mrb_define_method(mrb, n, "to_i", nil_to_i, MRB_ARGS_NONE()); mrb_define_method(mrb, mrb->kernel_module, "itself", mrb_f_itself, MRB_ARGS_NONE()); -- cgit v1.2.3