fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

RuboCop Airbnbの導入方法

RailsにRubocop Airbnbを導入する。

設定方法

Rubocop AirbnbGithubのInstallationに導入方法が書かれている。

  • Gemfileに gem 'rubocop-airbnb' の一文を追加
  • Gemfileと同じディレクトリに .rubocop.yml と .rubocop_airbnb.yml を新規作成

ただし、.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