0
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の設定

Posted at

先日RailsプロジェクトにRuboCopを導入しましたが、設定が沢山あり、何を書いたらいいか分からなかったので、私の設定について紹介したいと思います。
対象読者は、初めてRuboCopを導入する方です。

RuboCopとは

RuboCopとは、静的コード解析ツールの一つで、コードがコーディング規約に則り書かれているかをチェックすることができます。
RuboCopの導入方法については省略します。

RuboCop設定の記述方法

そもそもRuboCopの設定については、最初に書かなければいけないわけではなく、コードチェックを一度実行してみて、個人、又はチームのコーディング規約と合っていない部分のみ設定に記述すれば良いと思います。

.rubocop.yml

.yml
require:
  - rubocop-rails
  - rubocop-performance

AllCops:
  TargetRubyVersion: 2.7.1
  TargetRailsVersion: 6.0.3.3
  Exclude:
    - "node_modules/**/*"
    - "tmp/**/*"
    - "vendor/**/*"
    - ".git/**/*"
    - "config/**/*"
    - "app/channels/**/*"
    - "app/mailers/*"
    - "db/migrate/*"
    - "bin/*"
    - "db/schema.rb"
    - "spec/rails_helper.rb"
    - "spec/spec_helper.rb"
    - "Gemfile"
    - "Rakefile"
    - "config.ru"

Rails:
  Enabled: true

# デフォルトをダブルクォーテーションに設定
Style/StringLiterals:
  EnforcedStyle: double_quotes

# 日本語のコメントを許可
Style/AsciiComments:
  Enabled: false

# classの説明コメントは不要
Style/Documentation:
  Enabled: false

# フローズンリテラルコメントは不要
Style/FrozenStringLiteralComment:
  Enabled: false

解説

今回導入しているgemは、以下の3つです。

  • rubocop
  • rubocop-performance
  • rubocop-rails

require: rubocop-performance

 gem rubocop-performanceを導入している際に必要な記述です。

require: rubocop-rails

 gem rubocop-railsを導入している際に必要な記述です。

AllCops: TargetRubyVersion:

 使用しているRubyのバージョンを指定します。

AllCops: TargetRailsVersion:

 使用しているRailsのバージョンを指定します。

AllCops: Exclide:

 コードチェックを行わないファイルを指定します。
 自動生成されるファイルや、殆ど変更することのないファイルはここに指定しておくと無駄にエラーが出力されなくて済みます。

Rails: Enabled: true

 gem rubocop-railsを導入している際はtrueにします。

Style/StringLiterals:

 文字列リテラルの指定です。私は文字列リテラルは基本的にダブルクオートを使用するようにしていますが、RuboCopでは式展開がない場合は、シングルクオートをデフォルトとしています。
 ダブルクオートを使用する場合は、EnforcedStyle: double_quotesを指定します。

Style/AsciiComments:

 デフォルトではコード内のコメントを日本語で書くことは推奨されていません。
 しかし、今の所自分しかコードを読まないので、日本語でのコメント記述を許可するため、Enabled: falseを指定します。
 Enabled: falseは、この項目自体チェックを行わないという事です。

Style/Documentation:

 これは class hogeというクラスの定義の前にクラスについて説明する為のコメントを書きなさいという項目ですが、全てのクラスにコメントを書いていられないので、falseに設定しました。

Style/FrozenStringLiteralComment:

 フローズンリテラルコメントとは、# frozen_string_literal: true というコメントを記載する事によってファイル内の文字列をイミュータブルにする為のものです。
 今回の開発では必要ないと判断し、falseに設定しました。

コードを読みやすく、保守しやすいものとするため、適度に設定する事を心がけたいものです。

0
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
0
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?