For method chaining
The yield_self
or then
method, defined in Kernel
, returns the result of the block called with self
as argument.
The main advantage is the ability to chain methods.
Without a block, the method returns an Enumerator
for filtering, transforming, …
You’ll have noticed that then
is a reserved keyword, but Ruby does allow such a method to be defined, so it was intentionally chosen note#14, note#17.
Links to Ruby documentation for yield_self
and then
.