RailsのreturningってObject#tapじゃないか!
http://d.hatena.ne.jp/takihiro/20080701/1214919182
# A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.
#
# def foo
# returning values = [] do
# values << 'bar'
# values << 'baz'
# end
# end
#
# foo # => ['bar', 'baz']
#
# def foo
# returning [] do |values|
# values << 'bar'
# values << 'baz'
# end
# end
#
# foo # => ['bar', 'baz']
#
def returning(value)
yield(value)
value
end
returningってもろRuby 1.8.7で使えるようになったObject#tapじゃないか!
Object#tapは説明読むよりもソース読んだほうがはるかにわかりやすい典型例。
tapかわいいよtap - http://rubikitch.com/に移転しました
Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - http://rubikitch.com/に移転しました