オブジェクトが存在するときにだけ処理をする
at 2016-01-09 06:29 (UTC)
みんな大好き Object#tap
。でもこんなソースはあまり書きたくない。
foo.bar.baz.tap do |baz|
do_something(baz) if baz
end
tap_if
とかあれば便利じゃない?
foo.bar.baz.tap_if do |baz|
do_something(baz)
end
# もしくは
foo.bar.tap_if(:baz) do |baz|
do_something(baz)
end
似たようなことを考える人はいるものですでにある。→ tap-if | RubyGems.org | your community gem host
そして Rails やる上では try
で事足りることがわかった。ブロック取れるのか。
foo.bar.baz.try do |baz|
do_something(baz)
end
# もしくは
foo.bar.try(:baz) do |baz|
do_something(baz)
end
結論:Object#try
サイコー