class RuboCop::Cop::Rails::RefuteMethods

Use `assert_not` methods instead of `refute` methods.

@example

# bad
refute false
refute_empty [1, 2, 3]
refute_equal true, false

# good
assert_not false
assert_not_empty [1, 2, 3]
assert_not_equal true, false

Constants

CORRECTIONS
MSG
OFFENSIVE_METHODS

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 51
def autocorrect(node)
  lambda do |corrector|
    corrector.replace(
      node.loc.selector,
      CORRECTIONS[node.method_name]
    )
  end
end
on_send(node) click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 44
def on_send(node)
  return unless offensive?(node)

  message = offense_message(node.method_name)
  add_offense(node, location: :selector, message: message)
end

Private Instance Methods

offense_message(method_name) click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 66
def offense_message(method_name)
  format(
    MSG,
    refute_method: method_name,
    assert_method: CORRECTIONS[method_name]
  )
end
refute_method?(method_name) click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 62
def refute_method?(method_name)
  OFFENSIVE_METHODS.include?(method_name)
end