RuboCop | Style/IfUnlessModifier
概要
RuboCopの「Style/IfUnlessModifier」警告について。
1行で書くべき if / unless ステートメントに対して警告を出す。
1行で書くかどうかは、 1行にした場合にIfUnlessModifier の MaxLineLength
で収まるかどうかで判断する。
デフォルトは 80 です。
IfUnlessModifier
各設定値での検証結果をまとめます。
検証プログラム
if_unless_modifier.rb
def hage(msg)
if msg.nil?
fail ArgumentError, 'Invalid argument nil. Invalid argument nil.'
end
msg * 2
end
def hige(msg)
if msg.nil?
fail ArgumentError, 'Invalid argument nil. Invalid argument nil. '
end
msg * 2
end
実行結果 デフォルト の場合
.rubocop.yml
※検証のために LineLength が発生しないように100に変更
LineLength:
Max: 100
IfUnlessModifier:
MaxLineLength: 80
$ rubocop
Inspecting 1 file
C
Offenses:
if_unless_modifier.rb:2:3: C: Favor modifier if usage when having a single-line body. Another good alternative is the usage of control flow &&/||.
if msg.nil?
^^
1 file inspected, 1 offense detected
実行結果 MaxLength を79に変更します
.rubocop.yml
LineLength:
Max: 100
IfUnlessModifier:
MaxLineLength: 79
$ rubocop
Inspecting 1 file
.
1 file inspected, no offenses detected
RuboCopまとめ記事