module RubbyCop::Cop::NegativeConditional

Some common code shared between `NegatedIf` and `NegatedWhile` cops.

Public Instance Methods

check_negative_conditional(node) click to toggle source
# File lib/rubbycop/cop/mixin/negative_conditional.rb, line 13
def check_negative_conditional(node)
  condition = node.condition

  return if empty_condition?(condition)

  condition = condition.children.last while condition.begin_type?

  return unless single_negative?(condition)
  return if node.if_type? && node.else?

  add_offense(node, :expression)
end
negated_condition(node) click to toggle source
# File lib/rubbycop/cop/mixin/negative_conditional.rb, line 36
def negated_condition(node)
  condition = node.condition
  condition = condition.children.first while condition.begin_type?
  condition
end
negative_conditional_corrector(node) click to toggle source
# File lib/rubbycop/cop/mixin/negative_conditional.rb, line 26
def negative_conditional_corrector(node)
  condition = negated_condition(node)

  lambda do |corrector|
    corrector.replace(node.loc.keyword, node.inverse_keyword)
    corrector.replace(condition.source_range,
                      condition.children.first.source)
  end
end