diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-11-22 08:37:12 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2006-11-22 08:37:12 +0000 |
| commit | 70490da55a1782b752f0a67b31130a8847be6fae (patch) | |
| tree | 384ea66acf57989e9da7fc194c3362684529d047 /object.c | |
| parent | e4b3d833e07b1022c0a047199af0fa08f75b7ba2 (diff) | |
| download | ruby-70490da55a1782b752f0a67b31130a8847be6fae.tar.gz ruby-70490da55a1782b752f0a67b31130a8847be6fae.tar.xz ruby-70490da55a1782b752f0a67b31130a8847be6fae.zip | |
* object.c (rb_obj_tap): a new method. [ruby-talk:224013]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
| -rw-r--r-- | object.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -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); |
