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
RESTRICT_ON_SEND

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/internal_affairs/redundant_message_argument.rb, line 44
def on_send(node)
  node_type_check(node) do |node_arg, kwargs|
    find_offending_argument(node_arg, kwargs) do |pair|
      add_offense(pair) do |corrector|
        range = offending_range(pair)

        corrector.remove(range)
      end
    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 64
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 58
def offending_range(node)
  with_space = range_with_surrounding_space(node.loc.expression)

  range_with_surrounding_comma(with_space, :left)
end