class RuboCop::Cop::Rails::RefuteMethods
Use `assert_not` methods instead of `refute` methods.
@example EnforcedStyle: assert_not (default)
# 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
@example EnforcedStyle: refute
# bad assert_not false assert_not_empty [1, 2, 3] assert_not_equal true, false # good refute false refute_empty [1, 2, 3] refute_equal true, false
Constants
- ASSERT_NOT_METHODS
- CORRECTIONS
- MSG
- REFUTE_METHODS
- RESTRICT_ON_SEND
Public Instance Methods
on_send(node)
click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 61 def on_send(node) return unless offensive?(node) method_name = node.method_name message = offense_message(method_name) range = node.loc.selector add_offense(range, message: message) do |corrector| corrector.replace(range, convert_good_method(method_name)) end end
Private Instance Methods
bad_method?(method_name)
click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 75 def bad_method?(method_name) if style == :assert_not REFUTE_METHODS.include?(method_name) else ASSERT_NOT_METHODS.include?(method_name) end end
convert_good_method(bad_method)
click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 91 def convert_good_method(bad_method) if style == :assert_not CORRECTIONS.fetch(bad_method) else CORRECTIONS.invert.fetch(bad_method) end end
offense_message(method_name)
click to toggle source
# File lib/rubocop/cop/rails/refute_methods.rb, line 83 def offense_message(method_name) format( MSG, bad_method: method_name, good_method: convert_good_method(method_name) ) end