lib/rubocop/cop/minitest/refute_empty.rb in rubocop-minitest-0.6.2 vs lib/rubocop/cop/minitest/refute_empty.rb in rubocop-minitest-0.7.0
- old
+ new
@@ -7,45 +7,19 @@
# using `refute(object.empty?)`.
#
# @example
# # bad
# refute(object.empty?)
- # refute(object.empty?, 'the message')
+ # refute(object.empty?, 'message')
#
# # good
# refute_empty(object)
- # refute_empty(object, 'the message')
+ # refute_empty(object, 'message')
#
class RefuteEmpty < Cop
- include ArgumentRangeHelper
+ extend MinitestCopRule
- MSG = 'Prefer using `refute_empty(%<arguments>s)` over ' \
- '`refute(%<receiver>s)`.'
-
- def_node_matcher :refute_with_empty, <<~PATTERN
- (send nil? :refute $(send $_ :empty?) $...)
- PATTERN
-
- def on_send(node)
- refute_with_empty(node) do |first_receiver_arg, object, rest_receiver_arg|
- message = rest_receiver_arg.first
-
- arguments = [object.source, message&.source].compact.join(', ')
- receiver = [first_receiver_arg.source, message&.source].compact.join(', ')
-
- offense_message = format(MSG, arguments: arguments, receiver: receiver)
- add_offense(node, message: offense_message)
- end
- end
-
- def autocorrect(node)
- lambda do |corrector|
- refute_with_empty(node) do |_, actual_arg|
- corrector.replace(node.loc.selector, 'refute_empty')
- corrector.replace(first_argument_range(node), actual_arg.source)
- end
- end
- end
+ define_rule :refute, target_method: :empty?
end
end
end
end