summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-kernel-ext/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-10-18 10:21:54 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-10-18 10:21:54 +0900
commitfc930700b723ea2905deafb4dace5218b87d5a73 (patch)
tree6d1b4c72f88c0c77bd2be2c2dcfccc1c4c9269b6 /mrbgems/mruby-kernel-ext/src
parentce916b99b81fedf6561f8d3303320b31aa27d51c (diff)
downloadmruby-fc930700b723ea2905deafb4dace5218b87d5a73.tar.gz
mruby-fc930700b723ea2905deafb4dace5218b87d5a73.zip
Add `Kernel#itself`; CRuby2.2
Diffstat (limited to 'mrbgems/mruby-kernel-ext/src')
-rw-r--r--mrbgems/mruby-kernel-ext/src/kernel.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/mrbgems/mruby-kernel-ext/src/kernel.c b/mrbgems/mruby-kernel-ext/src/kernel.c
index 7e6fa28bd..94a8ac320 100644
--- a/mrbgems/mruby-kernel-ext/src/kernel.c
+++ b/mrbgems/mruby-kernel-ext/src/kernel.c
@@ -222,6 +222,22 @@ mrb_f_hash(mrb_state *mrb, mrb_value self)
return tmp;
}
+/*
+ * 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;
+}
+
void
mrb_mruby_kernel_ext_gem_init(mrb_state *mrb)
{
@@ -235,6 +251,7 @@ mrb_mruby_kernel_ext_gem_init(mrb_state *mrb)
mrb_define_module_function(mrb, krn, "String", mrb_f_string, MRB_ARGS_REQ(1));
mrb_define_module_function(mrb, krn, "Array", mrb_f_array, MRB_ARGS_REQ(1));
mrb_define_module_function(mrb, krn, "Hash", mrb_f_hash, MRB_ARGS_REQ(1));
+ mrb_define_module_function(mrb, krn, "itself", mrb_f_itself, MRB_ARGS_NONE());
}
void