class RuboCop::Cop::Style::PreferredHashMethods

Hash#has_value?
Hash#has_key?
# good
Hash#value?
Hash#key?
# bad
# EnforcedStyle: verbose
@example
Hash#value?
Hash#key?
# good
Hash#has_value?
Hash#has_key?
# bad
# EnforcedStyle: short (default)
@example
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 offending_selector?(method_name)

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

def on_send(node)

def on_send(node)
  _receiver, method_name, *args = *node
  return unless args.size == 1 &&
                offending_selector?(method_name)
  add_offense(node, :selector,
              format(MSG,
                     proper_method_name(method_name),
                     method_name))
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