Module: RuboCop::Cop::UncommunicativeName

Included in:
Naming::BlockParameterName, Naming::MethodParameterName
Defined in:
lib/rubocop/cop/mixin/uncommunicative_name.rb

Overview

Common functionality shared by Uncommunicative cops

Constant Summary collapse

CASE_MSG =
'Only use lowercase characters for %<name_type>s.'
NUM_MSG =
'Do not end %<name_type>s with a number.'
LENGTH_MSG =
'%<name_type>s must be at least %<min>s characters long.'
FORBIDDEN_MSG =
'Do not use %<name>s as a name for a %<name_type>s.'

Instance Method Summary collapse

Instance Method Details

#check(node, args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/rubocop/cop/mixin/uncommunicative_name.rb', line 12

def check(node, args)
  args.each do |arg|
    # Argument names might be "_" or prefixed with "_" to indicate they
    # are unused. Trim away this prefix and only analyse the basename.
    name_child = arg.children.first
    next if name_child.nil?

    full_name = name_child.to_s
    next if full_name == '_'

    name = full_name.gsub(/\A(_+)/, '')
    next if allowed_names.include?(name)

    length = full_name.size
    length += 1 if arg.restarg_type?
    length += 2 if arg.kwrestarg_type?

    range = arg_range(arg, length)
    issue_offenses(node, range, name)
  end
end