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