diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-05-19 22:15:27 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2019-05-19 22:17:56 +0900 |
| commit | 8e637bdd83505e8c1723f87a8d267e00ee209787 (patch) | |
| tree | 9c862fa8015f64d8e0f730679885c6fb25de93e5 /mrbgems/mruby-object-ext/src | |
| parent | 1cdb3ec93c09629dd24cab8a5e8f66ae6d26bf60 (diff) | |
| download | mruby-8e637bdd83505e8c1723f87a8d267e00ee209787.tar.gz mruby-8e637bdd83505e8c1723f87a8d267e00ee209787.zip | |
Should clarify the role of `mruby-kernel-ext` and `mruby-object-ext`; close #4449
The former should contain function like methods, and the latter should
contain methods shared by all objects.
Diffstat (limited to 'mrbgems/mruby-object-ext/src')
| -rw-r--r-- | mrbgems/mruby-object-ext/src/object.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/mrbgems/mruby-object-ext/src/object.c b/mrbgems/mruby-object-ext/src/object.c index b076b3ec0..dce97132c 100644 --- a/mrbgems/mruby-object-ext/src/object.c +++ b/mrbgems/mruby-object-ext/src/object.c @@ -46,6 +46,22 @@ nil_to_i(mrb_state *mrb, mrb_value obj) /* * call-seq: + * obj.itself -> an_object + * + * Returns <i>obj</i>. + * + * string = 'my string' #=> "my string" + * string.itself.object_id == string.object_id #=> true + * + */ +static mrb_value +mrb_f_itself(mrb_state *mrb, mrb_value self) +{ + return self; +} + +/* + * call-seq: * obj.instance_exec(arg...) {|var...| block } -> obj * * Executes the given block within the context of the receiver @@ -102,6 +118,7 @@ mrb_mruby_object_ext_gem_init(mrb_state* mrb) mrb_define_method(mrb, n, "to_f", nil_to_f, MRB_ARGS_NONE()); #endif mrb_define_method(mrb, n, "to_i", nil_to_i, MRB_ARGS_NONE()); + mrb_define_module_function(mrb, mrb->kernel_module, "itself", mrb_f_itself, MRB_ARGS_NONE()); mrb_define_method(mrb, mrb->kernel_module, "instance_exec", mrb_obj_instance_exec, MRB_ARGS_ANY() | MRB_ARGS_BLOCK()); } |
