rubocopとは静的解析ツールの1つであり、その中でもrubocop-railsはrailsでの開発に適した物です。
このツールを使用する事で、不適切なコードの構文を発見・自動修正がする事が可能になります。
●導入方法
導入方法・使用方法はとても簡単です。
まずはgemをインストールしましょう。
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の導入は非常に簡単ですし、導入する事で今後の工数を大幅に下げてくれる素晴らしいツールなので、必ず導入しましょう!