class RuboCop::Cop::Style::PreferredHashMethods

Hash#has_value?
Hash#has_key?
# good
Hash#value?
Hash#key?
# bad
@example EnforcedStyle: verbose
Hash#value?
Hash#key?
# good
Hash#has_value?
Hash#has_key?
# bad
@example EnforcedStyle: short (default)
names also.
It is configurable to enforce the inverse, using ‘verbose` method
Hash#has_value? where it enforces Hash#key? and Hash#value?
This cop (by default) checks for uses of methods Hash#has_key? and

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    corrector.replace(node.loc.selector,
                      proper_method_name(node.loc.selector.source))
  end
end

def message(node)

def message(node)
  format(MSG,
         prefer: proper_method_name(node.method_name),
         current: node.method_name)
end

def offending_selector?(method_name)

def offending_selector?(method_name)
  OFFENDING_SELECTORS[style].include?(method_name)
end

def on_send(node)

def on_send(node)
  return unless node.arguments.one? &&
                offending_selector?(node.method_name)
  add_offense(node, location: :selector)
end

def proper_method_name(method_name)

def proper_method_name(method_name)
  if style == :verbose
    "has_#{method_name}"
  else
    method_name.to_s.sub(/has_/, '')
  end
end