diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | object.c | 18 |
2 files changed, 22 insertions, 0 deletions
@@ -8,6 +8,10 @@ Wed Nov 22 16:00:49 2006 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> * ext/tk/tkutil/extconf.rb: able to be called manually [ruby-talk:225950]. +Sat Nov 18 23:39:20 2006 Yukihiro Matsumoto <matz@ruby-lang.org> + + * object.c (rb_obj_tap): a new method. [ruby-talk:224013] + Wed Nov 15 23:22:54 2006 Nobuyoshi Nakada <nobu@ruby-lang.org> * file.c (test_grpowned, rb_stat_grpowned): should honor @@ -410,6 +410,23 @@ rb_obj_is_kind_of(VALUE obj, VALUE c) /* + * call-seq: + * obj.tap{|x|...} => obj + * + * Returns the receiver after executing the block given. Its main + * purpose is to be inseted in the method chain. + * + */ + +VALUE +rb_obj_tap(VALUE obj) +{ + rb_yield(obj); + return obj; +} + + +/* * Document-method: inherited * * call-seq: @@ -2326,6 +2343,7 @@ Init_Object(void) rb_define_method(rb_mKernel, "instance_of?", rb_obj_is_instance_of, 1); rb_define_method(rb_mKernel, "kind_of?", rb_obj_is_kind_of, 1); rb_define_method(rb_mKernel, "is_a?", rb_obj_is_kind_of, 1); + rb_define_method(rb_mKernel, "tap", rb_obj_tap, 0); rb_define_private_method(rb_mKernel, "singleton_method_added", rb_obj_dummy, 1); rb_define_private_method(rb_mKernel, "singleton_method_removed", rb_obj_dummy, 1); |