1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Improve doc of yield_self

* object.c: Add code samples for yield_self.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
aycabta 2018-10-21 07:15:44 +00:00
parent bb6b273f3d
commit d67b903519

View file

@ -570,6 +570,25 @@ rb_obj_size(VALUE self, VALUE args, VALUE obj)
* 3.next.then {|x| x**x }.to_s #=> "256"
* "my string".yield_self {|s| s.upcase } #=> "MY STRING"
*
* Good usage for +yield_self+ is values piping in long method
* chains:
*
* require 'open-uri'
* require 'json'
*
* construct_url(arguments).
* yield_self { |url| open(url).read }.
* yield_self { |response| JSON.parse(response) }
*
* When called without block, the method returns +Enumerator+,
* which can be used, for example, for conditional
* circuit-breaking:
*
* # meets condition, no-op
* 1.yield_self.detect(&:odd?) # => 1
* # does not meet condition, drop value
* 2.yeild_self.detect(&:odd?) # => nil
*
*/
static VALUE