rubocops/unless_multiple_conditions: use rubocop v1 API

This commit is contained in:
Jonathan Chang 2021-01-12 18:20:30 +11:00
parent 0366e2f7f7
commit 30f7a872b5

View File

@ -7,8 +7,9 @@ module RuboCop
# This cop checks that `unless` is not used with multiple conditions. # This cop checks that `unless` is not used with multiple conditions.
# #
# @api private # @api private
class UnlessMultipleConditions < Cop class UnlessMultipleConditions < Base
extend T::Sig extend T::Sig
extend AutoCorrector
MSG = "Avoid using `unless` with multiple conditions." MSG = "Avoid using `unless` with multiple conditions."
@ -16,12 +17,7 @@ module RuboCop
def on_if(node) def on_if(node)
return if !node.unless? || (!node.condition.and_type? && !node.condition.or_type?) return if !node.unless? || (!node.condition.and_type? && !node.condition.or_type?)
add_offense(node, location: node.condition.source_range.with(begin_pos: node.loc.keyword.begin_pos)) add_offense(node.condition.source_range.with(begin_pos: node.loc.keyword.begin_pos)) do |corrector|
end
sig { params(node: RuboCop::AST::IfNode).returns(T.proc.params(arg0: RuboCop::Cop::Corrector).void) }
def autocorrect(node)
lambda do |corrector|
corrector.replace(node.loc.keyword, "if") corrector.replace(node.loc.keyword, "if")
corrector.replace(node.condition.loc.operator, node.condition.inverse_operator) corrector.replace(node.condition.loc.operator, node.condition.inverse_operator)
[node.condition.lhs, node.condition.rhs].each do |subcondition| [node.condition.lhs, node.condition.rhs].each do |subcondition|