Method: Object#tap

Defined in:
object.c

#tap {|x| ... } ⇒ Object

Yields self to the block, and then returns self. The primary purpose of this method is to “tap into” a method chain, in order to perform operations on intermediate results within the chain.

(1..10)                  .tap {|x| puts "original: #{x}" }
  .to_a                  .tap {|x| puts "array:    #{x}" }
  .select {|x| x.even? } .tap {|x| puts "evens:    #{x}" }
  .map {|x| x*x }        .tap {|x| puts "squares:  #{x}" }

Yields:

  • (x)

Returns:



908
909
910
911
912
913
# File 'object.c', line 908

VALUE
rb_obj_tap(VALUE obj)
{
    rb_yield(obj);
    return obj;
}