Ruby
Rails
RuboCop

Rubocop を使っているアナタがするべき2つのこと

1. とりあえず -D -E -S -P をつけるべし

オプションはいくつもありますが、この4つは特に副作用もないので、常に有効化することをオススメします。

$ export RUBOCOP_OPTS='-D -E -S -P' # おすすめ設定
$ bundle exec rubocop

export RUBOCOP_OPTS='-D -E -S -P'~/.bashrc などに書いておきましょう。

それぞれの意味はこちら:

-D, --display-cop-names    Display cop names in offense messages.
-E, --extra-details        Display extra details in offense messages.
-S, --display-style-guide  Display style guide URLs in offense messages.
-P, --parallel             Use available CPUs to execute inspection in

ただし、-P オプションは --auto-gen-config と併用できないので、--auto-gen-configを使う時は無効化する必要があります。

$ RUBOCOP_OPTS= bundle exec rubocop --auto-gen-config --exclude-limit=99999

2. --auto-gen-config には --exclude-limit=99999 もつけるべし

1種類のCopについて、違反しているファイルが15個以上になると、

# Offense count: 23
# Cop supports --auto-correct.
Layout/BlockEndNewline:
  Enabled: false

のように、Copを無効化する設定が .rubocop_todo.yml に生成されてしまいます。これでは、新たに追加するファイルに対しても警告がされません。

そこで、--exclude-limit に大きな数値を指定して、Enabled: false が生成されないようにしましょう。

$ RUBOCOP_OPTS= bundle exec rubocop --auto-gen-config --exclude-limit=99999