Railチュートリアルをカンニングしながらインスタクローンを作っているのですが、RuboCopを導入してみました
初期設定で色々と戸惑ってしまったので、対処方法を自分用にまとめます
##RuboCopとは
Ruby Style Guideに則ってコードを自動修正してくれたり、誤った書き方を指摘してくれるgemです
公式ドキュメント
https://docs.rubocop.org/en/stable/
GitHub
https://github.com/rubocop-hq/rubocop
##インストール方法
###直接インストール
$ gem install rubocop
###Gemfileからインストール
gem 'rubocop', require: false
ドキュメントによると、RuboCopはアップデートによって過去のバージョンと互換性のない変化を起こすことがあるらしいので、不測のアップデートを避けたい方はこちらの方法でとのこと
gem 'rubocop', '~> 0.78.0', require: false
##基本的な使用方法
以下のコマンドを実行するだけ。
$rubocop
このままだとどこが規約違反なのか指摘してくれるだけなので、自動で直して欲しい時は-aを付け加える
$rubocop -a
こうするとインデントなどの小さな規約違反を自動で直してくれます
自動で直してくれない部分は自分で直す必要あり
ただデフォルトの設定は少し厳しすぎるので、自分で設定を変更してみます
##設定を変える
設定を変える方法はルートディレクトリに.rubocop.ymlというファイルを作り、そこに設定を書き込んでいくだけでオーケーです
以下は自分が最初に行っておくべきと感じた設定です
LineLength:
Max: 100
Documentation:
Enabled: false
AsciiComments:
Enabled: false
MixinUsage:
Enabled: false
ClassAndModuleChildren:
Enabled: false
Rails newした直後にrubocop -aを実行してもかなりの数の規約違反が出てきてびっくりすると思いますが、とりあえずこの設定にしておけばRails newの直後からrubocop先生に怒られることはないと思います
またどんな設定があるのかは、ググるよりもGitHubのソースコードを見た方が早いです
rubocop -aを実行して怒られた箇所をGitHubのソースコードから探してみましょう
##最後に
自分用なのでかなり雑に書いています。申し訳ないです。
また、おかしい部分がありましたらご指摘ください