RuboCop 0.72がリリースされた

主な変更は以下です。

非互換の変更

Rails cops が削除された

移行期間にしていた RuboCop 0.71 が終わったことから、当初の予定どおり Rails cops が削除されました。

引き続き Rails cops を使う場合の代替は rubocop-rails gem を使うようにしてください。

koic.hatenablog.com

rubocop -R/--rails が消された

上述のとおり Rails cops が削除されたため不要なオプションとなったため削除されました。

Layout/IndentationConsistency cop の EnforcedStyle: rails オプション名が変わった

スタイルを表現する名前として、オルタナティブオプションの名前である EnforcedStyle: railsEnabledStyle: indented_internal_methods になりました。例えば rubocop-rails_config のユーザーに影響が出ます。

github.com

追加された cop

Gemspec/RubyVersionGlobalsUsage cop が追加された

gemspec 中で RUBY_VERSION を使わないようにというもので、pocke さんの提案がベースになったもの。日本語文書としては sue445 さんのエントリに詳しい。

sue445.hatenablog.com

Style/FloatDivision cop が追加された

The Ruby Style Guide に追加された Float Division の実装となる。

rubystyle.guide

デフォルトのルールは以下。

# bad
a.to_f / b.to_f

# good
a.to_f / b
a / b.to_f
a.fdiv(b)

追加されたオプション

Style/IfInsideElse cop に AllowIfModifier オプションが追加された

Rails リポジトリでのカスパーと kamipo さんの話がベースになったオプション。

有効にすると以下のような後置 if を許容するようになる。Breaking change が起きないようデフォルトは無効。

if condition_a
  action_a
else
  action_b if condition_b # ここ
end

その他、多くのバグ修正が含まれています。詳しくはチェンジログを参照してください。

github.com