#記事を書くに当たって
rubocop-airbnbを導入したのですが、自動修正までまとまっている記事がなかったのでまとめました。
#rubocopとは
rubocopはrubyコードがコーディング規約に乗っ取って書かれているかどうかをチェックするコード解析ツールです。
rubocopは色んな設定を自分でしなければいけないので、ここではairbnbの開発で使用されているrubocopの設定が反映されているrubocop-airbnbを使います。
#rubocop-airbnbの導入方法
Gemfileにgemを追加して、ターミナルでbundle installします。
group :development, :test do
gem 'rubocop-airbnb'
#ファイルの作成
アプリフォルダに.rubocup.yml
と.rubocop_airbnb.yml
を追加し、以下の内容を記入します。
(Gemfileと同じ階層のフォルダ)
ここでファイル名を間違えると、呼び出した際にエラーが出るので注意しましょう。
(.のつけ忘れや、_(アンダーバー)を-(ハイフン)にしていたなど)
inherit_from:
- .rubocop_airbnb.yml
#以下にはrubocopで検証したくないフォルダを指定する
AllCops:
Exclude:
- 'db/**/*'
- 'bin/*'
- 'config/environments/*'
- 'config/application.rb'
- 'config/initializers/*'
- 'config/spring.rb'
- 'lib/tasks/*'
- 'vendor/**/*'
- 'path/ruby'
require:
- rubocop-airbnb
#実行
ターミナルで以下のコマンドを入力します。エラーが出ていなければOK
bundle exec rubocop --require rubocop-airbnb
#実行結果(例)
20 files inspected, 1 offense detected
20のファイルを読み込み、1ファイル間違いがあります。という意味です。
#エラーの例
私は、.rubocop_airbnb.yml
を.rubocop-airbnb.yml
と記載しており、以下のエラーが出ていました。参考までに。
Errors are usually caused by RuboCop bugs.
Please, report your problems to RuboCop's issue tracker.
https://github.com/rubocop-hq/rubocop/issues
Mention the following information in the issue report:
0.58.2 (using Parser 2.6.0.0, running on ruby 2.5.1 x86_64-darwin17)
#コードの自動修正
ターミナルで実行時に、-a
をつけると自動で間違いを修正してくれます。
ソース:https://docs.rubocop.org/en/latest/auto_correct/
bundle exec rubocop --require rubocop-airbnb -a
以上です。コードの自動修正がすごく便利なので使ってみてください。