lib/rubocop/cop/rails/where_exists.rb in rubocop-rails-2.8.1 vs lib/rubocop/cop/rails/where_exists.rb in rubocop-rails-2.9.0

- old
+ new

@@ -34,14 +34,16 @@ # User.where(name: 'john').exists? # User.where(['name = ?', 'john']).exists? # User.where('name = ?', 'john').exists? # user.posts.where(published: true).exists? # User.where('length(name) > 10').exists? - class WhereExists < Cop + class WhereExists < Base include ConfigurableEnforcedStyle + extend AutoCorrector MSG = 'Prefer `%<good_method>s` over `%<bad_method>s`.' + RESTRICT_ON_SEND = %i[exists?].freeze def_node_matcher :where_exists_call?, <<~PATTERN (send (send _ :where $...) :exists?) PATTERN @@ -52,22 +54,15 @@ def on_send(node) find_offenses(node) do |args| return unless convertable_args?(args) range = correction_range(node) - message = format(MSG, good_method: build_good_method(args), bad_method: range.source) - add_offense(node, location: range, message: message) - end - end + good_method = build_good_method(args) + message = format(MSG, good_method: good_method, bad_method: range.source) - def autocorrect(node) - args = find_offenses(node) - - lambda do |corrector| - corrector.replace( - correction_range(node), - build_good_method(args) - ) + add_offense(range, message: message) do |corrector| + corrector.replace(range, good_method) + end end end private