Railsプロジェクトの途中でとりあえずrubocopを導入する
rubocop入れたいなーとおもっても、入れるの面倒くさいというときに、とりあえず(ほぼ)何も考えず導入する手順です。
手順
- gem入れる
- .rubocop.ymlを作成する
- Safe auto-correctする
- Automatically Generated Configurationする
- 最終確認する
gem入れる
Gemfile に下記を記述して bundle install。僕は、 rubocop-performance
がお気に入りです。
group :development do
gem 'rubocop', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-performance', require: false
end
bundle install
.rubocop.ymlを作成する
個人的に最低限とおもわれる記述をしてした .rubocop.ymlを直下に作る
Style/AsciiComments:
Enabled: false
Style/Documentation:
Enabled: false
require:
- rubocop-performance
- rubocop-rails
AllCops:
TargetRubyVersion: 3.0
NewCops: enable
Exclude:
- 'node_modules/**/*'
- 'log/**/*'
- 'tmp/**/*'
Safe auto-correctする
rubocopが誤って陽性を判定しない種類の箇所を自動的に修正してくれます。とりあえず、やりましょう。
以下参照。
rubocop -a
commitするまえに、修正箇所は1ファイルずつ修正見ましょう。直す必要はないと思いますが、重要性に応じて実行お願いします。
Automatically Generated Configurationする
修正されなかった箇所を todoとしてファイルに出力し記録します。 https://docs.rubocop.org/rubocop/configuration.html#automatically-generated-configuration
rubocop --auto-gen-config --no-exclude-limit
.rubocop_todo.yml が出力され、.rubocop.ymlに .rubocop_todo.yml を読み込むための記述が追加されます
--exclude-limit
とすることで、ファイル単位でomitされます。これがないと、フォルダ単位でまるっとomitされます。あとから直すつもりがなければ無くてもいいです。
しかし後から直すつもりがあるのでしたら、どのファイルに問題があるかがわかった方がいいので、出力がおすすめです。
最終確認
下記のコマンドでエラーがないことを確認してください。
rubocop
加えて、test(rspec等)があれば実行してください。
もし、エラーが出たばあいは rubocop.ymlで Exclude: に除外したいファイルのパスを書き込んでとりあえず乗り切りましょう
Rails/TimeZone:
Exclude:
- '除外したいファイルパス'
最後にcommie pushして終了。これでとりあえずrubcop入りました!
Discussion