Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Objectクラス > tap

instance method Object#tap

tap {|x| ... } -> self[permalink][rdoc]

self を引数としてブロックを評価し、self を返します。

メソッドチェインの途中で直ちに操作結果を表示するために メソッドチェインに "入り込む" ことが、このメソッドの主目的です。

(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}" }


"my string".yield_self {|s| s.upcase }   # => "MY STRING"
3.next.yield_self {|x| x**x }.to_s       # => "256"