/
method_parameter_name.rb
58 lines (55 loc) · 1.67 KB
/
method_parameter_name.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# frozen_string_literal: true
module RuboCop
module Cop
module Naming
# This cop checks method parameter names for how descriptive they
# are. It is highly configurable.
#
# The `MinNameLength` config option takes an integer. It represents
# the minimum amount of characters the name must be. Its default is 3.
# The `AllowNamesEndingInNumbers` config option takes a boolean. When
# set to false, this cop will register offenses for names ending with
# numbers. Its default is false. The `AllowedNames` config option
# takes an array of permitted names that will never register an
# offense. The `ForbiddenNames` config option takes an array of
# restricted names that will always register an offense.
#
# @example
# # bad
# def bar(varOne, varTwo)
# varOne + varTwo
# end
#
# # With `AllowNamesEndingInNumbers` set to false
# def foo(num1, num2)
# num1 * num2
# end
#
# # With `MinArgNameLength` set to number greater than 1
# def baz(a, b, c)
# do_stuff(a, b, c)
# end
#
# # good
# def bar(thud, fred)
# thud + fred
# end
#
# def foo(speed, distance)
# speed * distance
# end
#
# def baz(age_a, height_b, gender_c)
# do_stuff(age_a, height_b, gender_c)
# end
class MethodParameterName < Cop
include UncommunicativeName
def on_def(node)
return unless node.arguments?
check(node, node.arguments)
end
alias on_defs on_def
end
end
end
end