RuboCop Airbnbの導入方法
参照URL
Rubocop AirbnbのGithub
https://github.com/airbnb/ruby/tree/master/rubocop-airbnb#installation
Rubocopの公式Doc
https://docs.rubocop.org/en/latest/
設定方法
Rubocop AirbnbのGithubのInstallationに導入方法が書かれている。
ただし、.rubocop.yml は公式Docに記載されている通りのままだと下記の現象が起きるため、対応が必要
.rubocop_todo.ymlが無いよと怒られる
公式docでは .rubocop.yml 作成時に .rubocop_todo.yml と .rubocop_airbnb.yml を inherit するように記載しているが前者はいらない。.rubocop_todo.ymlは「Rubocopでエラーとなっているが後で対応すること」を記載するファイルであり、必要になるまで不要。
rails newコマンド打ったばかりのコードに対して色々エラーが出る
configやdbなどのファイルに対してエラーが出る。特に問題ないはずなので下記に示した方法で除外する。vendorフォルダとかもチェックする必要ないので、状況に応じて除外対象に追加。
.rubocop.yml
inherit_from: - .rubocop_airbnb.yml AllCops: Exclude: - 'bin/*' - 'config/**/*' - 'db/**/*' - 'spec/spec_helper.rb'
rubocopの実行
bundle exec rubocop -R -D
-Rオプション
--railsの省略形で、railsに特化したCopが実行される。毎回付けるのが面倒な場合は、.rubocop.yml で下記のように設定すればOK
AllCops: RunRailsCops: true
-Dオプション
エラーメッセージにおいて、各Copの名称が表示されるようになる。デフォルトでtrueとのことなので付けなくても良いかも(未検証)
Rubocop実行時の様々なオプション(フラグ)
様々なオプションがあるので、下記における「Other useful command-line flags」で確認できる
Basic Usage - RuboCop: The Ruby Linter that Serves and Protects