method

then

Importance_2
Ruby latest stable (v2_5_5) - 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
  • 2_6_3 (0)
  • What's this?

Method not available on this version

This method is only available on newer versions. The first available version of the method is shown here.

then() 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
Show source
Register or log in to add new notes.