Ruby
RuboCop

rubocop gemを使うためにたった1つの重要なこと

More than 3 years have passed since last update.

rubocopは.rubocop.ymlを編集すれば、独自のルールを設定できる。

ただし、この設定ファイルはデフォルトの項目を オーバーライドする!

例えば、AllCops/Excludeに設定を追加したい場合、下記のように書かないとうまく動かない。


rubocop.yml

AllCops:

Exclude:
- 'vendor/**' # default.ymlに設定されている項目
- 'tools/**' # 追加したい項目

これは、先に書いたようにデフォルトのAllCops/Excludeがオーバーライドされてしまうため。

余談だがAllCops/Excludeから'vendor/**'が失われると、インストールされているgemに含まれる.rubocop.ymlが読み込まれることになり、特にrubocop 0.20.0以降、設定項目のrenameが行われたようで、下記のようなメッセージが表示され、原因の特定が難しくなるだろう。(というかハマった・・・のでこれ書いてる

AllCops/Excludes was renamed to AllCops/Exclude

ちなみに、デフォルトの設定が書かれているファイルはrubocop gemのディレクトリ下config/default.yml

gemがvendor/bundle下にインストールされているならvendor/bundle/gems/rubocop-x.y.z/config/default.ymlにあるので、変更する際は参照してみると良いと思う。