From 9ebb61ac5260fed84f61965327ad488c9aab64b6 Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Sat, 2 Jul 2022 14:19:23 +0900 Subject: [PATCH] [Fix #10780] Fix an error when using `rubocop:auto_correct` rake task Fixes #10780. This commit fixes the following error when using `rubocop:auto_correct` deprecated custom rake task. ```console % bundle exec rake lint:rubocop:auto_correct rake aborted! NoMethodError: undefined method `Rainbow' for # warn Rainbow( ^^^^^^^ ``` And it fixes the following error that occur after that. ```console % bundle exec rake lint:rubocop:auto_correct rubocop:auto_correct task is deprecated; use rubocop:autocorrect task or rubocop:autocorrect_all task instead. rake aborted! Don't know how to build task 'rubocop:autocorrect' (See the list of available tasks with `rake --tasks`) /Users/koic/src/github.com/rubocop/rubocop/lib/rubocop/rake_task.rb:81:in `block (2 levels) in setup_subtasks' /Users/koic/.rbenv/versions/3.1.2/bin/bundle:25:in `load' /Users/koic/.rbenv/versions/3.1.2/bin/bundle:25:in `
' Tasks: TOP => lint:rubocop:auto_correct (See full trace by running task with --trace) ``` --- ...ix_an_error_when_using_rubocop_auto_correct_rake_task.md | 1 + lib/rubocop/rake_task.rb | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 changelog/fix_an_error_when_using_rubocop_auto_correct_rake_task.md diff --git a/changelog/fix_an_error_when_using_rubocop_auto_correct_rake_task.md b/changelog/fix_an_error_when_using_rubocop_auto_correct_rake_task.md new file mode 100644 index 00000000000..41ee741a3d0 --- /dev/null +++ b/changelog/fix_an_error_when_using_rubocop_auto_correct_rake_task.md @@ -0,0 +1 @@ +* [#10780](https://github.com/rubocop/rubocop/issues/10780): Fix an error when using `rubocop:auto_correct` deprecated custom rake task. ([@koic][]) diff --git a/lib/rubocop/rake_task.rb b/lib/rubocop/rake_task.rb index 60ed7f6d4de..db3ed9c82e9 100644 --- a/lib/rubocop/rake_task.rb +++ b/lib/rubocop/rake_task.rb @@ -73,11 +73,15 @@ def setup_subtasks(name, *args, &task_block) # rubocop:disable Metrics/AbcSize, namespace(name) do # rubocop:todo Naming/InclusiveLanguage task(:auto_correct, *args) do + require 'rainbow' warn Rainbow( 'rubocop:auto_correct task is deprecated; ' \ 'use rubocop:autocorrect task or rubocop:autocorrect_all task instead.' ).yellow - ::Rake::Task['rubocop:autocorrect'].invoke + RakeFileUtils.verbose(verbose) do + yield(*[self, task_args].slice(0, task_block.arity)) if task_block + perform('--autocorrect') + end end # rubocop:enable Naming/InclusiveLanguage