配列を変更する
p [].tap{|arr|
  5.times.each do|i|
    arr << i
  end 
} 
# 出力
# [0, 1, 2, 3, 4]
文字列を変更する
p 'a'.tap{|str|
  str << 'b' 
}
# 出力 
# ab
ActiveRecord を覗く
便利!
a = Foo.where(bar:'a').tap{|a| p a.to_sql}.all
配列の中身を見る
[1, 2, 3].tap{|a| p a }.push(4).tap{|a| p a }
# 出力
# [1, 2, 3]
# [1, 2, 3, 4]
ちょっとかっこいい
def foo
  a = []
  5.times.each{|i|
    a << i
  }
  a
end
上が下のように書ける。初期化とリターンがいらないけれど特に読みやすくないのでやっぱりあまりかっこよくないかもしれない。
def foo
  [].tap{|a|
    5.times.each{|i|
      a << i
    }
  }
end