class RuboCop::Cop::InternalAffairs::RedundantMessageArgument

Checks for redundant message arguments to `#add_offense`. This method will automatically use `#message` or `MSG` (in that order of priority) if they are defined.

@example

# bad
add_offense(node, message: MSG)
add_offense(node, message: message)
add_offense(node, message: message(node))

# good
add_offense(node)
add_offense(node, message: CUSTOM_MSG)
add_offense(node, message: message(other_node))

Constants

MSG

Public Instance Methods

autocorrect(node) click to toggle source
# File lib/rubocop/cop/internal_affairs/redundant_message_argument.rb, line 47
def autocorrect(node)
  range = offending_range(node)

  ->(corrector) { corrector.remove(range) }
end
on_send(node) click to toggle source
# File lib/rubocop/cop/internal_affairs/redundant_message_argument.rb, line 39
def on_send(node)
  node_type_check(node) do |node_arg, kwargs|
    find_offending_argument(node_arg, kwargs) do |pair|
      add_offense(pair)
    end
  end
end

Private Instance Methods

find_offending_argument(searched_node, kwargs) { |pair| ... } click to toggle source
# File lib/rubocop/cop/internal_affairs/redundant_message_argument.rb, line 61
def find_offending_argument(searched_node, kwargs)
  kwargs.pairs.each do |pair|
    redundant_message_argument(pair) do |message_argument|
      node = message_method_call(message_argument)

      yield pair if !node || node == searched_node
    end
  end
end
offending_range(node) click to toggle source
# File lib/rubocop/cop/internal_affairs/redundant_message_argument.rb, line 55
def offending_range(node)
  with_space = range_with_surrounding_space(range: node.loc.expression)

  range_with_surrounding_comma(with_space, :left)
end