1
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 5 years have passed since last update.

-これからポートフォリオを作成する方へ- rubocop-railsの導入・使用方法を説明

1
Posted at

rubocopとは静的解析ツールの1つであり、その中でもrubocop-railsはrailsでの開発に適した物です。
このツールを使用する事で、不適切なコードの構文を発見・自動修正がする事が可能になります。

●導入方法

導入方法・使用方法はとても簡単です。
まずはgemをインストールしましょう。

Gemfile
group :development do
 gem 'rubocop', require: false
  gem 'rubocop-rails'
end
$ bundle install

そしたら後はrubocopと入力し実行するだけ。

$ rubocop

しかし現段階ではまだエラーが数多くでるででしょう。そこで設定が必要になります。
ちなみに自分は最初rubocop-railsの存在を知らずruboopのみをインストールし実行したらさらに膨大な量のエラーが発生し爆死しました。

●設定方法

まずば設定に必要なファイルを作成しましょう、

$ rubocop --auto-gen-config

そうすると、「rubocpp.yml」と「rubocop_todo.yml」が生成されると思います。
・rubocop.yml:規約設定ファイル
・rubocop_todo:yml:規約設定を無視するファイル

初期段階ではrubocop_todo.ymlにより全ての規約を無視するよう設定されており、エラーが0件になると思います。
最終的にrubocop_todo.ymlが空でもエラーを0件にすることがゴールです。

規約設定に関しては検索すると色々と例が出てくると思いますので、とりあえずそれで設定してみて、後々自分に合わせてカスタマイズする方法が良いかと思います。


inherit_from: .rubocop_todo.yml

require:
  - rubocop-rails

AllCops:
  TargetRubyVersion: 2.6 #Rubyのバージョン指定
  Exclude: #除外するファイルをここで指定
    - 'config.ru'
    - 'bin/**'
    - 'lib/**'
    - 'db/**/*'
    - 'config/**/*'
    - 'script/**/*'
    - !ruby/regexp /old_and_unused\.rb$/

AsciiComments: #日本語手のコメントを許可する
  Enabled: false

Documentation: #クラスにコメントを記載しなくても良い
  Enabled: false

ClassAndModuleChildren: #モジュール名::クラス名の定義を許可する
  Enabled: false

Style/FrozenStringLiteralComment: # 文字リテラルのイミュータブル宣言を無視(freezeになるのはRuby3以降)
  Enabled: false

ここでまで設定しrubocopを実行すると、相当エラー数が減っているかと思います。そしてそこからさらに魅力的な機能が、rubocopによる自動修正です。実行方法は、rubocop --auto-correctを実行するだけ。

$ rubocop --auto-correct

そうすると、更にエラー数が減っているかと思います。残りのエラーは、エラーメッセージを検索しつつ、実際に手作業でコードを修正していきましょう。

エラーメッセージ集として、とても参考になるサイトを貼っておきます。
ruby:Rubocopの使い方と警告について

●まとめ

rubocopの導入は非常に簡単ですし、導入する事で今後の工数を大幅に下げてくれる素晴らしいツールなので、必ず導入しましょう!

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