RuboCop とは
RuboCop は Ruby スクリプトをコード解析してコーディングスタイルなどにツッコミを入れてくれるツールです。
メソッドが長すぎるとか,
if item = items.first
# item を使った何か
end
みたいな代入を兼ねた条件式はやめとけとか。
設定をカスタマイズする
ただ,コーディングスタイルは人によっても違うし,プロジェクトによっても違います。
そこで,検査項目ごとに細かくカスタマイズできるようになっています。ある検査をしないようにしたり,判定の閾値を変えたりできます。
カスタマイズは YAML 形式で記述して,プロジェクトのディレクトリーの .rubocop.yml
に入れておけば,そのプロジェクトのみに適用されます。
設定についてはたとえば「RuboCopの設定アレコレ」とか,そこからのリンク先を見てください。
設定を共通と個別で別管理
ここからが本題です。
すべてのプロジェクトに共通の設定もしたいし,プロジェクトごとにも設定したい。
共通設定をどこかに置いておいて,プロジェクトごとに上書きする形で個別に設定できればいいですね。
.rubocop.yml
には inherit_from
という項目を置くことができ,ここに共通設定のパスを書いておけば,それをまず読み込んで,それを上書きするように設定できます。
具体的には,共通設定をホームディレクトリーに入れておき,プロジェクトごとの .rubocop.yml
に
inherit_from: ~/.rubocop.yml
と書きます。
ホームディレクトリーを ~
で表すのは Unix 系 OS なら常識ですが,Windows でこう書けるとは思いませんでした!
(まさかと思いつつやってみたらできた)