4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rubocop-airbnbを使ってルール遵守の確認

Last updated at Posted at 2021-09-01

目次

  • 概要
  • 導入方法
  • ファイルの作成・記載
  • 指摘事項
  • 総括
  • 参考記事

概要

Rubocopとはコード解析・検査をしてくれるGemです。具体的にはコードに対して、一行が長いよ、endがないよといったことをあるルールに則り指摘(任せれば修正も)してくれます。
今回使用するRubocop-airbnbはデフォルトのルールではなく、Airbnb社が決めたルールで解析してくれるGemです。
Githubはこちら

尚、今回、私自身がPF制作を終えて、ある一定のルールの下、コーディング出来たのかということを確認するために導入しました。
そのためGemに任せた修正は行わず、一つ一つ内容を確認しました。

導入方法

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

bundle installしましょう。

ファイルの作成・記載

アプリのフォルダ直下に.rubocop.ymlと.rubocop_airbnb.ymlを作成します。
/アプリ名/.rubocop.yml
/アプリ名/.rubocop_airbnb.yml
になっていればOKです。

.rubocop.yml
inherit_from:
  - .rubocop_airbnb.yml

# 解析から除外するファイルやフォルダを指定します。
# ご自身に合わせて加除修正を行ってください。
AllCops:
  Exclude:
    - 'db/**/*'
    - 'bin/*'
    - 'config/environments/*'
    - 'config/application.rb'
    - 'config/initializers/*'
    - 'config/spring.rb'
    - 'lib/tasks/*'
    - 'vendor/**/*'
    - 'path/ruby'
    - 'test/**/*'
    - 'spec/**/*'
    - 'config/**/*'
.rubocop_airbnb.yml
require:
  - rubocop-airbnb

これで記載完了です。

$ bundle exec rubocop --require rubocop-airbnb

で検査できます。

指摘事項

約80か所の指摘がありましたがインデント、改行がメインでした。
文言通りに確認していくとすぐに解決することができますが、
パッと見て理解できなかったもの、解決に至らなかったものをご紹介したいと思います。

Freeze mutable objects assigned to constants.

参考
正規表現のバリデーションをかけた箇所への指摘。
定数を書き換えられないようにfreezeメソッドで固定せよとのこと。

/[ァ-ヴ]/.freeze

こちらで解決

Inconsistent indentation detected.

一貫性のないインデントを検出したとのこと。不審な点が見当たらず未解決。

Use 2 (not 0) spaces for indentation. def index

類似事例を参考にするも未解決。

総括

企業やアプリケーション毎にコーディングルールがあり、それに準じて記載していく必要があるということは分かっていました。
自分なりにルールを設けて記載していたつもりでしたが、表記ゆれが確認できてしまいました。(Airbnb社とのルール差はともかく。)
この点は反省し、今後一層コーディングルールの順守を心がけていこうと思います。

参考

https://qiita.com/yokoyan/items/76e6b330a6b9d908d6fb
https://qiita.com/tomohiii/items/1a17018b5a48b8284a8b
https://qiita.com/ki_87/items/c09f2c7b924669bb9600

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?