LoginSignup
17
24

More than 5 years have passed since last update.

コード見直しの為のrubocop-airbnbの導入方法

Posted at

記事を書くに当たって

rubocop-airbnbを導入したのですが、自動修正までまとまっている記事がなかったのでまとめました。

rubocopとは

rubocopはrubyコードがコーディング規約に乗っ取って書かれているかどうかをチェックするコード解析ツールです。

rubocopは色んな設定を自分でしなければいけないので、ここではairbnbの開発で使用されているrubocopの設定が反映されているrubocop-airbnbを使います。

rubocop-airbnbの導入方法

Gemfileにgemを追加して、ターミナルでbundle installします。

Gemfile.
group :development, :test do
  gem 'rubocop-airbnb'

ファイルの作成

アプリフォルダに.rubocup.yml.rubocop_airbnb.ymlを追加し、以下の内容を記入します。
(Gemfileと同じ階層のフォルダ)
ここでファイル名を間違えると、呼び出した際にエラーが出るので注意しましょう。
(.のつけ忘れや、_(アンダーバー)を-(ハイフン)にしていたなど)

.rubocop.yml
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'

.rubocop_airbnb.yml
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

以上です。コードの自動修正がすごく便利なので使ってみてください。

17
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
24