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:
parent
bb6b273f3d
commit
d67b903519
1 changed files with 19 additions and 0 deletions
19
object.c
19
object.c
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue