method
yield_self
v2_6_3 -
Show latest stable
-
0 notes -
Class: Object
- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378
- 1_9_2_180
- 1_9_3_125
- 1_9_3_392
- 2_1_10
- 2_2_9
- 2_4_6
- 2_5_5 (0)
- 2_6_3 (38)
- What's this?
yield_self()
public
Yields self to the block and returns the result of the block.
3.next.then {|x| x**x }.to_s #=> "256" "my string".yield_self {|s| s.upcase } #=> "MY STRING"
Good usage for yield_self is value piping in 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.yield_self.detect(&:odd?) # => nil