LoginSignup
15
14

More than 3 years have passed since last update.

Rubocop導入+手順とコマンドの備忘録

Posted at

Rubocopを使ったデバックのやり方

  • 1.現在の違反をすべて記録した上で、いったん違反では無いことにする
  • 2.記録した違反のうち1つを、違反していることに戻す
  • 3.その違反を解消する
  • 要するに.rubocop.todo.ymlから違反を消しbundle exec rubocopを実行 → 修正

rubocop 通常実行コマンド

bundle exec  rubocop

大量に出てくるのがコード規約違反!

以下のコマンドを実行すると、規約違反の一覧が表示される.rubocop.todo.ymlが生成される。
コマンド実行後は.rubocop.ymlの一番上にinherit_from: .rubocop_todo.ymlと追加される。
これがあると規約違反が読まれない。

bundle exec rubocop --auto-gen-config

以下のコマンドを実行すると、自動である程度を修正してくれる。

bundle exec rubocop -a

.rubocop.ymlをルートディレクトリに作成して、設定を作れる。
最後に自分の使用例を載せます!

rubocop.yml
inherit_from: .rubocop_todo.yml

AllCops:
  # 除外するディレクトリ(自動生成されたファイル)
  # デフォルト設定にある"vendor/**/*"が無効化されないように記述
  Exclude:
    - 'bin/*'
    - 'lib/*'
    - 'node_modules/**/*'
    - 'db/**/*'
    - 'vendor/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - 'test/**'
  # Rails向けのRails copsを実行。"rubocop -R"と同じ
  Rails:
    enabled: true

# "Missing top-level class documentation comment."を無効
Style/Documentation:
  Enabled: false

# コメントにはアスキー記号のみを使用してください
AsciiComments:
  Enabled: false

# "Prefer single-quoted strings when you don't need string interpolation or special symbols."を無効
Style/StringLiterals:
  Enabled: false

# "Line is too long"を無効
Metrics/LineLength:
  Enabled: false

# join_roomの記述が引っかかる為。省略は難しい
Etrics/MethodLength:
  Enabled: true
  Max: 18

#'frozen_string_literal: true'を無効
Style/FrozenStringLiteralComment:
  Enabled: false

# tweet_searchやtestのnamespaceが引っかかるため
Style/ClassAndModuleChildren:
  Enabled: false

# 線が多い長いブロックは避けてください
Metrics/BlockLength:
  Exclude:
    - 'spec/**/*'

# NotificationsControllerが22文字の為
Metrics/AbcSize:
  Enabled: true
  Max: 23

# if~else~endの方がひと目で分かりやすいと思うためfalse。詳細は以下を参照
# https://docs.rubocop.org/rubocop/cops_style.html#styleguardclause
Style/GuardClause:
  Enabled: false

# devise_helperの関係のため
Naming/HeredocDelimiterNaming:
  Enabled: false
15
14
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
15
14