次の RuboCop バージョンとして予定されている 0.68 から Performance Cops が外されます。今後 Performance Cops を使う場合は Gemify された rubocop-performance gem を使うことになるため、RuboCop 0.67 から警告が出るようにしています。
これから 0.68 までの間を移行期間としているため RuboCop の Performance Cops を使う場合は、以下のような設定を加えてください。
Gemfile に rubocop-performance
gem を追加して bundle install
する。
gem 'rubocop-performance'
.rubocop.yml に require: rubocop-performance
を追加する。例えば以下のように足すことになります。
inherit_from: .rubocop_todo.yml
require:
+ - rubocop-performance
- rubocop-rspec
AllCops:
Exclude:
- 'vendor/**/*'
- 'spec/fixtures/**/*'
- 'tmp/**/*'
TargetRubyVersion: 2.6
rubocop-performance gem についての詳細は https://github.com/rubocop-hq/rubocop-performance を参照してください。
RuboCop 本体と rubocop-performance gem 両方に実装がある場合、rubocop-performance gem の実装が方が優先される動きになります。
Performance Cops が外されることについての移行スケジュールは以下です。
- RuboCop 0.67 ... Gemfile (あるいは gemspec) に
rubocop-performance
への依存がない場合に警告を表示します - RuboCop 0.68 ... RuboCop Core から Performance Cops を削除します
RuboCop 本体の開発についても RuboCop Performance に依存する形になるので設定のサンプルとして一例まで。
Performance Cops を Gemify する意図については、以下スライド 67 ページあたりからまとめていますので興味のある方はどうぞ。