Skip to content

Commit

Permalink
Use the new Autocorrection API
Browse files Browse the repository at this point in the history
The autocorrection API was changed in Rubocop v0.87.0 (pull request rubocop/rubocop#7868).

Here, I change the superclass of `RuboCop::Cop::RSpec::Cop` from
`::RuboCop::Cop::Cop` to `::RuboCop::Cop::Base`.

This has a few consequences:

- Our `#message` methods get called with a different argument than
  before. It *can* be customized by defining a `#callback_argument`
  method, but I think it is clearer to avoid callbacks altogether.
- Our `#autocorrect` methods don't get called anymore. Instead, we
  extend `Autocorrector`, and the `corrector` is being yielded when
  calling `#add_offense`, so the code is mostly moved in there. For some
  cases, this means that some code can be removed, which is nice. For
  some cases, it means that the methods get too long, or the code
  complexity gets too high, and in those cases I chose to just call out
  to an `#autocorrect` method anyway, but of course passing the
  `corrector` and any usable local variables along.

This also means we bump the dependency of RuboCop quite a bit, from
'>= 0.68.1' to '>= 0.87.0'.
  • Loading branch information
bquorning committed Jul 9, 2020
1 parent 02177d3 commit 5ea0160
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .rubocop_todo.yml
Expand Up @@ -14,4 +14,4 @@ InternalAffairs/MethodNameEqual:
# Offense count: 1
# Configuration parameters: CountComments.
Metrics/ClassLength:
Max: 104
Max: 106
2 changes: 1 addition & 1 deletion rubocop-rspec_rails.gemspec
Expand Up @@ -36,7 +36,7 @@ Gem::Specification.new do |spec|
'documentation_uri' => 'https://rubocop-rspec.readthedocs.io/'
}

spec.add_runtime_dependency 'rubocop', '>= 0.68.1'
spec.add_runtime_dependency 'rubocop', '>= 0.87.0'

spec.add_development_dependency 'rack'
spec.add_development_dependency 'rake'
Expand Down
2 changes: 1 addition & 1 deletion tasks/cops_documentation.rake
Expand Up @@ -40,7 +40,7 @@ task generate_cops_documentation: :yard_for_generate_documentation do
]
config = config.for_cop(cop)
safe_auto_correct = config.fetch('SafeAutoCorrect', true)
autocorrect = if cop.new.support_autocorrect?
autocorrect = if cop.support_autocorrect?
"Yes #{'(Unsafe)' unless safe_auto_correct}"
else
'No'
Expand Down

0 comments on commit 5ea0160

Please sign in to comment.