RuboCopさんが教えてくれたRailsメソッド
<この記事ではRailsのメソッド「presence」について書きます。>
今日の出来事。
何気なくコード書いてpushしたらCIで働いてるRuboCopさんに、とあるコードを書き換えてくれとご指摘をいただきました。
↓ 指摘をくらったコード
hoge = if a.present?
a
else
b
end
[変数 a]があれば[変数 hoge]に[変数 a]を代入し、なければ[変数 hoge]に[変数 b]を代入するコード。
これを見てRuboCopさんは「presence」メソッド使った方がいいんじゃね?と言ってきました。
↓「presence」のソースコード
def presence
self if present?
end
レシーバに対してpresentを実行してtrueであれば、
レシーバ自身を返し、falseならnilといった動きでした。
↓ そして改善したコード
hoge = a.presence || b
圧倒的コードの短さw
Railsと上手に付き合うにはこういったコードを短く書けることに快感を覚えなきゃならんですね。
どうでもいいですけど、最近はRuboCopさんに対する好感度高いです。
はじめの頃はやたら細かい指摘してくる前職にいた40近くのおじさんのようで嫌でしたが。