`rubocop` コマンドに `--init` オプションを用意した

rubocop コマンドに --init オプションを用意した。次のリリースとなる RuboCop 0.68 で有効になる予定。

github.com

使い方

% rubocop --init
Writing new .rubocop.yml to /private/tmp/example/.rubocop.yml

rubocop --init を実行すると、カレントディレクトリに以下のような .rubocop.yml ができる。

% cat .rubocop.yml
# The behavior of RuboCop can be controlled via the .rubocop.yml
# configuration file. It makes it possible to enable/disable
# certain cops (checks) and to alter their behavior if they accept
# any parameters. The file can be placed either in your home
# directory or in some project directory.
#
# RuboCop will start looking for the configuration file in the directory
# where the inspected file is and continue its way up to the root directory.
#
# See https://github.com/rubocop-hq/rubocop/blob/master/manual/configuration.md

すでに .rubocop.yml が存在している場合は以下のように失敗する。

% rubocop --init # A warning will occur when .rubocop.yml already exists
.rubocop.yml already exists at /private/tmp/example/.rubocop.yml

RuboCop JP に神速さんが開いてくれたイシューがアイデアの元になっている。

github.com

基本的な設定項目として何を示すかといった選別が悩ましいため、このイシューのすべての問題が解決するわけではないが手始めとしてコンフィグレーションのリンクを示すまででひとまず用意した。

不足していたテストコードは PR 直前に書き加えているものの、去年の7月には基本線を実装してコミットしていた (おそらくもっと前に作っていたが、一度手元のリポジトリを飛ばしてしまった時にそれは消えていると思う) 。元々はアイデアの多くを実現してから PR を開こうと思っていたところ、来月の銀座 Rails に向けたお蔵出し機能のひとつとなる。