rubocop-airbnb 導入方法まとめ
rubocop 本体は設定項目が多いので、ライトな rubocop-airbnb を導入することにした。
以下、導入方法のまとめと、無視したいエラーの書き方についてまとめ。
導入方法
1. gemのインストール
gemfile の開発環境とテスト環境に rubocop-airbnb を追加し、bundle install
group :development, :test do gem 'rubocop-airbnb' end
2. rubocop-airbnb の設定
ルートディレクトリに .rubocop.yml と .rubocop_airbnb.yml の2ファイルを作成し、以下の内容を記述
# .rubocop.yml inherit_from: - .rubocop_airbnb.yml # Rails用に最適化 Rails: Enabled: true # 文字数上限 LineLength: Max: 130 AllCops: Exclude: - 'db/**/*' - 'config/**/*' - 'script/**/*' - 'node_modules/**/*' - 'bin/*' - '**/Gemfile' - 'vendor/**/*' - '.git/**/*'
Exclude で除外フォルダ・除外ファイルを設定している。
# .rubocop_airbnb.yml require: - rubocop-airbnb
以上で設定は終了。
以下、実行して起動(エラーチェック&エラー内容書き出し)すれば完了。
$ bundle exec rubocop --require rubocop-airbnb
特定ファイルのみエラーを無視する方法
今回のケースは、 devise 導入しているアプリにおいて、devise 公式で案内されている記述にエラーが吐き出されてしまった例。
スキルが高ければリファクタリングの方法がわかるのかもしれないが、現状の自分ではできなかったので、エラーを無視することに。
方法は意外と簡単だった。rubocop.yml に記述を設定すればいいだけ。
今回は2つのエラーを除外している。
inherit_from: - .rubocop_airbnb.yml # Rails用に最適化 Rails: Enabled: true # 文字数上限 LineLength: Max: 130 # devise Airbnb/ClassOrModuleDeclaredInWrongFile: Exclude: - 'app/controllers/Users/*' Rails/HelperInstanceVariable: Exclude: - 'app/helpers/application_helper.rb' AllCops: Exclude: - 'db/**/*' - 'config/**/*' - 'script/**/*' - 'node_modules/**/*' - 'bin/*' - '**/Gemfile' - 'vendor/**/*' - '.git/**/*'
以下、参考記事
rubocop−airbnbを使うにあたって - Qiita
[Rubocop] 特定のルールを特定のファイル(ディレクトリ)でのみ無効にする | qs Developers