class RuboCop::Cop::Style::PredicateName
def value? …
# good
def has_value? …
# bad
def even?(value)
# good
def is_even?(value) …
# bad
@example
This cop makes sure that predicates are named properly.
def expected_name(method_name, prefix)
def expected_name(method_name, prefix) new_name = if prefix_blacklist.include?(prefix) method_name.sub(prefix, '') else method_name.dup end new_name << '?' unless method_name.end_with?('?') new_name end
def message(method_name, new_name)
def message(method_name, new_name) "Rename `#{method_name}` to `#{new_name}`." end
def on_method(node, method_name, _args, _body)
def on_method(node, method_name, _args, _body) predicate_prefices.each do |prefix| method_name = method_name.to_s next unless method_name.start_with?(prefix) next if method_name == expected_name(method_name, prefix) add_offense( node, :name, message(method_name, expected_name(method_name, prefix)) ) end end
def predicate_prefices
def predicate_prefices cop_config['NamePrefix'] end
def prefix_blacklist
def prefix_blacklist cop_config['NamePrefixBlacklist'] end