0.41及びバグ修正リリースの0.41.1がリリースされました。13個のCopの新規追加の他、機能追加、バグ修正などが行われております。0.41.1では新規追加されたCopがRailsプロジェクトにおいてクラッシュしてしまう問題が修正されています(該当のPR)。そのため特にRailsプロジェクトでRuboCopを使用しているのであれば、バージョン0.41.1を使用することをおすすめします。今回のリリースでは、先ほど紹介したバグ修正を含むいくつかのコミットに私も関わっています。今回のリリースの概要を紹介させていただきたいと思います。CHANGELOGを読んでいきましょう。Features新規Cop今回のリリースでは、13個の新規Copが追加されました。Style/SpaceInsidePercentLiteralDelimitersStyle/SpaceInsideArrayPercentLiteralStyle/NumericLiteralPrefixStyle/ImplicitRuntimeErrorStyle/EachForSimpleLoopLint/ShadowedExceptionLint/PercentSymbolArrayLint/PercentStringArrayLint/InheritExceptionPerformance/PushSplatRails/RequestRefererRails/OutputSafetyRails/Exit以下で一つ一つ見ていきましょう。Style/SpaceInsidePercentLiteralDelimitersRubyのパーセント記法において、パーセントの内側にスペースが書かれてしまっていることを指摘します。)Style/SpaceInsideArrayPercentLiteral上のStyle/SpaceInsidePercentLiteralDelimitersと似ていますが、Rubyのパーセント記法において、余分なパーセントが入っている場合を指摘します。baz)Style/NumericLiteralPrefix数値リテラルのプレフィックスを統一するよう指摘します。#数値リテラルStyle/ImplicitRuntimeError暗黙的なRuntimeErrorを指摘します。'error'Style/EachForSimpleLoop.eachをよりシンプルに出来る場合を指摘します。bar)Lint/InheritExceptionExceptionを直接継承した例外クラスを指摘します。Rubyでは通常、Exceptionを直接継承した例外クラスは定義せず、StandardErrorなどから継承します。endPerformance/PushSplat配列を連結する際に、パフォーマンスが悪い方法で書かれていることを指摘します。3].concat(a)Rails/RequestRefererRailsにおいて、request.referrerかrequest.refererのどちらかを使用するよう統一します。本来、参照元という意味の英単語は「referrer」であるが、HTTPリファラの場合は意図的に「referer」と綴る場合がある。これは、HTTPが策定された時にヘッダ名を間違ったスペルで書いてしまい、それが今でも使われている、という歴史的経緯のためである。Helper等で、.html_safeを使っているものを指摘します。Rails/ExitRailsアプリケーション内で、exitメソッドを使用していることを指摘します。returnなどを使用すべきでしょう。新規Copの他に、以下の2点の新規機能に特に注目しています。2.0を想定したパーサで解析を実行します。この挙動は従来、下記のように.rubocop.ymlを設定することで変更可能でした。0.41からは、.rubocop.ymlの設定より優先して、.ruby-versionの内容から使用すべきパーサのバージョンを推定するようになりました。テスト用のヘルパー関数がGemに含まれたこれは主にRuboCopプラグインを開発している人を対象とした変更です。従来、RuboCopのテストヘルパー関数はspec/下に置かれていました。submoduleなどを駆使して別途RuboCopのソースコードをプロジェクトに含める必要がありました。今回の変更でテストヘルパー関数はlib/下に移され、Gemにも含まれるようになりました。その為、プラグイン開発者もRuboCopをGemとしてインストールするだけでテストヘルパー関数をプラグインから利用することが可能となりました。その他機能追加CHANGELOGからのコピペになりますが、以下にその他の新規機能をまとめます。バグ修正と、いくつかの修正が行われたようです。まとめRuboCopのCHANGELOGをまとめてみましたが、いかがでしたでしょうか?これを機に今書いているRubyのスタイルを見直してみるのも良いかも知れません。