rubocop 0.86.0 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/config/default.yml +46 -4
  4. data/lib/rubocop.rb +7 -1
  5. data/lib/rubocop/cli.rb +0 -2
  6. data/lib/rubocop/cli/command/auto_genenerate_config.rb +40 -5
  7. data/lib/rubocop/cli/command/show_cops.rb +1 -1
  8. data/lib/rubocop/config_loader.rb +22 -62
  9. data/lib/rubocop/config_obsoletion.rb +0 -1
  10. data/lib/rubocop/cop/autocorrect_logic.rb +13 -23
  11. data/lib/rubocop/cop/base.rb +399 -0
  12. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +10 -20
  13. data/lib/rubocop/cop/commissioner.rb +48 -50
  14. data/lib/rubocop/cop/cop.rb +85 -236
  15. data/lib/rubocop/cop/corrector.rb +38 -115
  16. data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +1 -1
  17. data/lib/rubocop/cop/generator.rb +1 -1
  18. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +11 -14
  19. data/lib/rubocop/cop/layout/case_indentation.rb +18 -19
  20. data/lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb +1 -8
  21. data/lib/rubocop/cop/layout/first_argument_indentation.rb +4 -0
  22. data/lib/rubocop/cop/layout/hash_alignment.rb +1 -2
  23. data/lib/rubocop/cop/layout/multiline_block_layout.rb +0 -1
  24. data/lib/rubocop/cop/layout/space_around_block_parameters.rb +19 -25
  25. data/lib/rubocop/cop/legacy/corrections_proxy.rb +49 -0
  26. data/lib/rubocop/cop/legacy/corrector.rb +29 -0
  27. data/lib/rubocop/cop/lint/interpolation_check.rb +13 -0
  28. data/lib/rubocop/cop/lint/nested_method_definition.rb +1 -1
  29. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +2 -2
  30. data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +8 -3
  31. data/lib/rubocop/cop/lint/rand_one.rb +1 -1
  32. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +27 -23
  33. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +2 -2
  34. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +8 -0
  35. data/lib/rubocop/cop/lint/syntax.rb +11 -26
  36. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -1
  37. data/lib/rubocop/cop/lint/useless_access_modifier.rb +1 -1
  38. data/lib/rubocop/cop/metrics/block_length.rb +22 -0
  39. data/lib/rubocop/cop/metrics/class_length.rb +25 -2
  40. data/lib/rubocop/cop/metrics/method_length.rb +23 -0
  41. data/lib/rubocop/cop/metrics/module_length.rb +25 -2
  42. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +129 -0
  43. data/lib/rubocop/cop/mixin/allowed_methods.rb +19 -0
  44. data/lib/rubocop/cop/mixin/auto_corrector.rb +12 -0
  45. data/lib/rubocop/cop/mixin/code_length.rb +4 -0
  46. data/lib/rubocop/cop/mixin/configurable_formatting.rb +1 -1
  47. data/lib/rubocop/cop/mixin/enforce_superclass.rb +3 -1
  48. data/lib/rubocop/cop/mixin/nil_methods.rb +3 -5
  49. data/lib/rubocop/cop/mixin/ordered_gem_node.rb +6 -1
  50. data/lib/rubocop/cop/mixin/surrounding_space.rb +7 -2
  51. data/lib/rubocop/cop/mixin/too_many_lines.rb +3 -13
  52. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +4 -2
  53. data/lib/rubocop/cop/naming/ascii_identifiers.rb +27 -4
  54. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +2 -2
  55. data/lib/rubocop/cop/naming/method_name.rb +1 -1
  56. data/lib/rubocop/cop/naming/method_parameter_name.rb +1 -1
  57. data/lib/rubocop/cop/naming/predicate_name.rb +3 -5
  58. data/lib/rubocop/cop/naming/variable_name.rb +1 -1
  59. data/lib/rubocop/cop/naming/variable_number.rb +1 -1
  60. data/lib/rubocop/cop/offense.rb +16 -2
  61. data/lib/rubocop/cop/style/accessor_grouping.rb +136 -0
  62. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +121 -0
  63. data/lib/rubocop/cop/style/class_vars.rb +21 -0
  64. data/lib/rubocop/cop/style/date_time.rb +1 -1
  65. data/lib/rubocop/cop/style/dir.rb +2 -2
  66. data/lib/rubocop/cop/style/empty_literal.rb +5 -5
  67. data/lib/rubocop/cop/style/expand_path_arguments.rb +2 -2
  68. data/lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb +12 -0
  69. data/lib/rubocop/cop/style/multiline_block_chain.rb +10 -1
  70. data/lib/rubocop/cop/style/mutable_constant.rb +4 -4
  71. data/lib/rubocop/cop/style/nested_parenthesized_calls.rb +2 -5
  72. data/lib/rubocop/cop/style/proc.rb +1 -1
  73. data/lib/rubocop/cop/style/random_with_offset.rb +4 -10
  74. data/lib/rubocop/cop/style/redundant_assignment.rb +117 -0
  75. data/lib/rubocop/cop/style/redundant_exception.rb +14 -10
  76. data/lib/rubocop/cop/style/redundant_fetch_block.rb +26 -7
  77. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -1
  78. data/lib/rubocop/cop/style/redundant_parentheses.rb +7 -1
  79. data/lib/rubocop/cop/style/redundant_regexp_character_class.rb +2 -1
  80. data/lib/rubocop/cop/style/rescue_standard_error.rb +1 -1
  81. data/lib/rubocop/cop/style/signal_exception.rb +1 -1
  82. data/lib/rubocop/cop/style/stderr_puts.rb +1 -1
  83. data/lib/rubocop/cop/style/struct_inheritance.rb +2 -2
  84. data/lib/rubocop/cop/style/symbol_proc.rb +1 -1
  85. data/lib/rubocop/cop/style/trivial_accessors.rb +8 -7
  86. data/lib/rubocop/cop/style/zero_length_predicate.rb +2 -2
  87. data/lib/rubocop/cop/team.rb +97 -81
  88. data/lib/rubocop/cop/utils/format_string.rb +1 -2
  89. data/lib/rubocop/name_similarity.rb +1 -3
  90. data/lib/rubocop/options.rb +15 -8
  91. data/lib/rubocop/rake_task.rb +6 -9
  92. data/lib/rubocop/rspec/cop_helper.rb +4 -4
  93. data/lib/rubocop/rspec/expect_offense.rb +10 -16
  94. data/lib/rubocop/rspec/shared_contexts.rb +7 -7
  95. data/lib/rubocop/runner.rb +31 -29
  96. data/lib/rubocop/target_ruby.rb +1 -1
  97. data/lib/rubocop/version.rb +1 -1
  98. metadata +15 -7
  99. data/lib/rubocop/cop/mixin/classish_length.rb +0 -37
@@ -150,14 +150,14 @@ module RuboCop
150
150
  def_node_matcher :operation_produces_immutable_object?, <<~PATTERN
151
151
  {
152
152
  (const _ _)
153
- (send (const nil? :Struct) :new ...)
154
- (block (send (const nil? :Struct) :new ...) ...)
153
+ (send (const {nil? cbase} :Struct) :new ...)
154
+ (block (send (const {nil? cbase} :Struct) :new ...) ...)
155
155
  (send _ :freeze)
156
156
  (send {float int} {:+ :- :* :** :/ :% :<<} _)
157
157
  (send _ {:+ :- :* :** :/ :%} {float int})
158
158
  (send _ {:== :=== :!= :<= :>= :< :>} _)
159
- (send (const nil? :ENV) :[] _)
160
- (or (send (const nil? :ENV) :[] _) _)
159
+ (send (const {nil? cbase} :ENV) :[] _)
160
+ (or (send (const {nil? cbase} :ENV) :[] _) _)
161
161
  (send _ {:count :length :size} ...)
162
162
  (block (send _ {:count :length :size} ...) ...)
163
163
  }
@@ -14,6 +14,7 @@ module RuboCop
14
14
  # method1(method2 arg)
15
15
  class NestedParenthesizedCalls < Cop
16
16
  include RangeHelp
17
+ include AllowedMethods
17
18
 
18
19
  MSG = 'Add parentheses to nested method call `%<source>s`.'
19
20
 
@@ -54,13 +55,9 @@ module RuboCop
54
55
 
55
56
  def allowed?(send_node)
56
57
  send_node.parent.arguments.one? &&
57
- allowed_methods.include?(send_node.method_name.to_s) &&
58
+ allowed_method?(send_node.method_name) &&
58
59
  send_node.arguments.one?
59
60
  end
60
-
61
- def allowed_methods
62
- cop_config['AllowedMethods'] || []
63
- end
64
61
  end
65
62
  end
66
63
  end
@@ -17,7 +17,7 @@ module RuboCop
17
17
  MSG = 'Use `proc` instead of `Proc.new`.'
18
18
 
19
19
  def_node_matcher :proc_new?,
20
- '(block $(send (const nil? :Proc) :new) ...)'
20
+ '(block $(send (const {nil? cbase} :Proc) :new) ...)'
21
21
 
22
22
  def on_block(node)
23
23
  proc_new?(node) do |block_method|
@@ -31,7 +31,7 @@ module RuboCop
31
31
  (send
32
32
  int {:+ :-}
33
33
  (send
34
- {nil? (const nil? :Random) (const nil? :Kernel)}
34
+ {nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
35
35
  :rand
36
36
  {int irange erange}))
37
37
  PATTERN
@@ -39,7 +39,7 @@ module RuboCop
39
39
  def_node_matcher :rand_op_integer?, <<~PATTERN
40
40
  (send
41
41
  (send
42
- {nil? (const nil? :Random) (const nil? :Kernel)}
42
+ {nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
43
43
  :rand
44
44
  {int irange erange})
45
45
  {:+ :-}
@@ -49,7 +49,7 @@ module RuboCop
49
49
  def_node_matcher :rand_modified?, <<~PATTERN
50
50
  (send
51
51
  (send
52
- {nil? (const nil? :Random) (const nil? :Kernel)}
52
+ {nil? (const {nil? cbase} :Random) (const {nil? cbase} :Kernel)}
53
53
  :rand
54
54
  {int irange erange})
55
55
  {:succ :pred :next})
@@ -128,14 +128,8 @@ module RuboCop
128
128
  end
129
129
  end
130
130
 
131
- def_node_matcher :namespace, <<~PATTERN
132
- {$nil? (const nil? $_)}
133
- PATTERN
134
-
135
131
  def prefix_from_prefix_node(node)
136
- namespace(node) do |namespace|
137
- [namespace, 'rand'].compact.join('.')
138
- end
132
+ [node&.source, 'rand'].compact.join('.')
139
133
  end
140
134
 
141
135
  def boundaries_from_random_node(random_node)
@@ -0,0 +1,117 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RuboCop
4
+ module Cop
5
+ module Style
6
+ # This cop checks for redundant assignment before returning.
7
+ #
8
+ # @example
9
+ # # bad
10
+ # def test
11
+ # x = foo
12
+ # x
13
+ # end
14
+ #
15
+ # # bad
16
+ # def test
17
+ # if x
18
+ # z = foo
19
+ # z
20
+ # elsif y
21
+ # z = bar
22
+ # z
23
+ # end
24
+ # end
25
+ #
26
+ # # good
27
+ # def test
28
+ # foo
29
+ # end
30
+ #
31
+ # # good
32
+ # def test
33
+ # if x
34
+ # foo
35
+ # elsif y
36
+ # bar
37
+ # end
38
+ # end
39
+ #
40
+ class RedundantAssignment < Cop
41
+ MSG = 'Redundant assignment before returning detected.'
42
+
43
+ def_node_matcher :redundant_assignment?, <<~PATTERN
44
+ (... $(lvasgn _name _expression) (lvar _name))
45
+ PATTERN
46
+
47
+ def on_def(node)
48
+ check_branch(node.body)
49
+ end
50
+ alias on_defs on_def
51
+
52
+ def autocorrect(node)
53
+ lambda do |corrector|
54
+ expression = node.children[1]
55
+ corrector.replace(node, expression.source)
56
+ corrector.remove(right_sibling_of(node))
57
+ end
58
+ end
59
+
60
+ private
61
+
62
+ def check_branch(node)
63
+ return unless node
64
+
65
+ case node.type
66
+ when :case then check_case_node(node)
67
+ when :if then check_if_node(node)
68
+ when :rescue, :resbody
69
+ check_rescue_node(node)
70
+ when :ensure then check_ensure_node(node)
71
+ when :begin, :kwbegin
72
+ check_begin_node(node)
73
+ end
74
+ end
75
+
76
+ def check_case_node(node)
77
+ node.when_branches.each { |when_node| check_branch(when_node.body) }
78
+ check_branch(node.else_branch)
79
+ end
80
+
81
+ def check_if_node(node)
82
+ return if node.modifier_form? || node.ternary?
83
+
84
+ check_branch(node.if_branch)
85
+ check_branch(node.else_branch)
86
+ end
87
+
88
+ def check_rescue_node(node)
89
+ node.child_nodes.each do |child_node|
90
+ check_branch(child_node)
91
+ end
92
+ end
93
+
94
+ def check_ensure_node(node)
95
+ check_branch(node.body)
96
+ end
97
+
98
+ def check_begin_node(node)
99
+ if (assignment = redundant_assignment?(node))
100
+ add_offense(assignment)
101
+ else
102
+ last_expr = node.children.last
103
+ check_branch(last_expr)
104
+ end
105
+ end
106
+
107
+ def right_sibling_of(node)
108
+ siblings_of(node)[node.sibling_index + 1]
109
+ end
110
+
111
+ def siblings_of(node)
112
+ node.parent.children
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -16,21 +16,22 @@ module RuboCop
16
16
  #
17
17
  # # Good
18
18
  # raise 'message'
19
- class RedundantException < Cop
19
+ class RedundantException < Base
20
+ extend AutoCorrector
21
+
20
22
  MSG_1 = 'Redundant `RuntimeError` argument can be removed.'
21
23
  MSG_2 = 'Redundant `RuntimeError.new` call can be replaced with ' \
22
24
  'just the message.'
23
25
 
26
+ # Switch `raise RuntimeError, 'message'` to `raise 'message'`, and
27
+ # `raise RuntimeError.new('message')` to `raise 'message'`.
24
28
  def on_send(node)
25
- exploded?(node) { return add_offense(node, message: MSG_1) }
26
- compact?(node) { add_offense(node, message: MSG_2) }
29
+ fix_exploded(node) || fix_compact(node)
27
30
  end
28
31
 
29
- # Switch `raise RuntimeError, 'message'` to `raise 'message'`, and
30
- # `raise RuntimeError.new('message')` to `raise 'message'`.
31
- def autocorrect(node) # rubocop:disable Metrics/MethodLength
32
+ def fix_exploded(node)
32
33
  exploded?(node) do |command, message|
33
- return lambda do |corrector|
34
+ add_offense(node, message: MSG_1) do |corrector|
34
35
  if node.parenthesized?
35
36
  corrector.replace(node,
36
37
  "#{command}(#{message.source})")
@@ -40,19 +41,22 @@ module RuboCop
40
41
  end
41
42
  end
42
43
  end
44
+ end
45
+
46
+ def fix_compact(node)
43
47
  compact?(node) do |new_call, message|
44
- lambda do |corrector|
48
+ add_offense(node, message: MSG_2) do |corrector|
45
49
  corrector.replace(new_call, message.source)
46
50
  end
47
51
  end
48
52
  end
49
53
 
50
54
  def_node_matcher :exploded?, <<~PATTERN
51
- (send nil? ${:raise :fail} (const nil? :RuntimeError) $_)
55
+ (send nil? ${:raise :fail} (const {nil? cbase} :RuntimeError) $_)
52
56
  PATTERN
53
57
 
54
58
  def_node_matcher :compact?, <<~PATTERN
55
- (send nil? {:raise :fail} $(send (const nil? :RuntimeError) :new $_))
59
+ (send nil? {:raise :fail} $(send (const {nil? cbase} :RuntimeError) :new $_))
56
60
  PATTERN
57
61
  end
58
62
  end
@@ -41,13 +41,12 @@ module RuboCop
41
41
  (block
42
42
  $(send _ :fetch _)
43
43
  (args)
44
- ${#basic_literal? const_type?})
44
+ ${nil? #basic_literal? #const_type?})
45
45
  PATTERN
46
46
 
47
47
  def on_block(node)
48
48
  redundant_fetch_block_candidate?(node) do |send, body|
49
- return if body.const_type? && !check_for_constant?
50
- return if body.str_type? && !check_for_string?
49
+ return if should_not_check?(send, body)
51
50
 
52
51
  range = fetch_range(send, node)
53
52
  good = build_good_method(send, body)
@@ -65,7 +64,9 @@ module RuboCop
65
64
  redundant_fetch_block_candidate?(node) do |send, body|
66
65
  lambda do |corrector|
67
66
  receiver, _, key = send.children
68
- corrector.replace(node, "#{receiver.source}.fetch(#{key.source}, #{body.source})")
67
+ default_value = body ? body.source : 'nil'
68
+
69
+ corrector.replace(node, "#{receiver.source}.fetch(#{key.source}, #{default_value})")
69
70
  end
70
71
  end
71
72
  end
@@ -73,21 +74,39 @@ module RuboCop
73
74
  private
74
75
 
75
76
  def basic_literal?(node)
76
- node.basic_literal?
77
+ node&.basic_literal?
78
+ end
79
+
80
+ def const_type?(node)
81
+ node&.const_type?
82
+ end
83
+
84
+ def should_not_check?(send, body)
85
+ (body&.const_type? && !check_for_constant?) ||
86
+ (body&.str_type? && !check_for_string?) ||
87
+ rails_cache?(send.receiver)
77
88
  end
78
89
 
90
+ def_node_matcher :rails_cache?, <<~PATTERN
91
+ (send (const _ :Rails) :cache)
92
+ PATTERN
93
+
79
94
  def fetch_range(send, node)
80
95
  range_between(send.loc.selector.begin_pos, node.loc.end.end_pos)
81
96
  end
82
97
 
83
98
  def build_good_method(send, body)
84
99
  key = send.children[2].source
85
- "fetch(#{key}, #{body.source})"
100
+ default_value = body ? body.source : 'nil'
101
+
102
+ "fetch(#{key}, #{default_value})"
86
103
  end
87
104
 
88
105
  def build_bad_method(send, body)
89
106
  key = send.children[2].source
90
- "fetch(#{key}) { #{body.source} }"
107
+ block = body ? "{ #{body.source} }" : '{}'
108
+
109
+ "fetch(#{key}) #{block}"
91
110
  end
92
111
 
93
112
  def check_for_constant?
@@ -56,7 +56,7 @@ module RuboCop
56
56
  (begin (send {float int} {:+ :- :* :** :/ :% :<<} _))
57
57
  (begin (send !(str _) {:+ :- :* :** :/ :%} {float int}))
58
58
  (begin (send _ {:== :=== :!= :<= :>= :< :>} _))
59
- (send (const nil? :ENV) :[] _)
59
+ (send (const {nil? cbase} :ENV) :[] _)
60
60
  (send _ {:count :length :size} ...)
61
61
  (block (send _ {:count :length :size} ...) ...)
62
62
  }
@@ -205,7 +205,9 @@ module RuboCop
205
205
  end
206
206
 
207
207
  def first_argument?(node)
208
- first_send_argument?(node) || first_super_argument?(node)
208
+ first_send_argument?(node) ||
209
+ first_super_argument?(node) ||
210
+ first_yield_argument?(node)
209
211
  end
210
212
 
211
213
  def_node_matcher :first_send_argument?, <<~PATTERN
@@ -216,6 +218,10 @@ module RuboCop
216
218
  ^(super equal?(%0) ...)
217
219
  PATTERN
218
220
 
221
+ def_node_matcher :first_yield_argument?, <<~PATTERN
222
+ ^(yield equal?(%0) ...)
223
+ PATTERN
224
+
219
225
  def call_chain_starts_with_int?(begin_node, send_node)
220
226
  recv = first_part_of_call_chain(send_node)
221
227
  recv&.int_type? && (parent = begin_node.parent) &&
@@ -34,10 +34,11 @@ module RuboCop
34
34
  \[ # Literal [
35
35
  (?!\#\{) # Not (the start of) an interpolation
36
36
  (?: # Either...
37
- \\. | # Any escaped character
37
+ \\[^b] | # Any escaped character except b (which would change behaviour)
38
38
  [^.*+?{}()|$] | # or one that doesn't require escaping outside the character class
39
39
  \\[upP]\{[^}]+\} # or a unicode code-point or property
40
40
  )
41
+ (?<!\\) # No \-prefix (i.e. not escaped)
41
42
  \] # Literal ]
42
43
  )
43
44
  /x.freeze
@@ -85,7 +85,7 @@ module RuboCop
85
85
  PATTERN
86
86
 
87
87
  def_node_matcher :rescue_standard_error?, <<~PATTERN
88
- (resbody $(array (const nil? :StandardError)) _ _)
88
+ (resbody $(array (const {nil? cbase} :StandardError)) _ _)
89
89
  PATTERN
90
90
 
91
91
  def on_resbody(node)
@@ -111,7 +111,7 @@ module RuboCop
111
111
  RAISE_MSG = 'Use `raise` instead of `fail` to ' \
112
112
  'rethrow exceptions.'
113
113
 
114
- def_node_matcher :kernel_call?, '(send (const nil? :Kernel) %1 ...)'
114
+ def_node_matcher :kernel_call?, '(send (const {nil? cbase} :Kernel) %1 ...)'
115
115
  def_node_search :custom_fail_methods,
116
116
  '{(def :fail ...) (defs _ :fail ...)}'
117
117
 
@@ -22,7 +22,7 @@ module RuboCop
22
22
 
23
23
  def_node_matcher :stderr_puts?, <<~PATTERN
24
24
  (send
25
- {(gvar #stderr_gvar?) (const nil? :STDERR)}
25
+ {(gvar #stderr_gvar?) (const {nil? cbase} :STDERR)}
26
26
  :puts $_
27
27
  ...)
28
28
  PATTERN
@@ -41,8 +41,8 @@ module RuboCop
41
41
  end
42
42
 
43
43
  def_node_matcher :struct_constructor?, <<~PATTERN
44
- {(send (const nil? :Struct) :new ...)
45
- (block (send (const nil? :Struct) :new ...) ...)}
44
+ {(send (const {nil? cbase} :Struct) :new ...)
45
+ (block (send (const {nil? cbase} :Struct) :new ...) ...)}
46
46
  PATTERN
47
47
 
48
48
  private
@@ -19,7 +19,7 @@ module RuboCop
19
19
  'instead of a block.'
20
20
  SUPER_TYPES = %i[super zsuper].freeze
21
21
 
22
- def_node_matcher :proc_node?, '(send (const nil? :Proc) :new)'
22
+ def_node_matcher :proc_node?, '(send (const {nil? cbase} :Proc) :new)'
23
23
  def_node_matcher :symbol_proc?, <<~PATTERN
24
24
  (block
25
25
  ${(send ...) (super ...) zsuper}
@@ -28,6 +28,8 @@ module RuboCop
28
28
  # attr_reader :baz
29
29
  # end
30
30
  class TrivialAccessors < Cop
31
+ include AllowedMethods
32
+
31
33
  MSG = 'Use `attr_%<kind>s` to define trivial %<kind>s methods.'
32
34
 
33
35
  def on_def(node)
@@ -95,9 +97,8 @@ module RuboCop
95
97
  cop_config['IgnoreClassMethods']
96
98
  end
97
99
 
98
- def allowed_methods
99
- allowed_methods = cop_config['AllowedMethods']
100
- Array(allowed_methods).map(&:to_sym) + [:initialize]
100
+ def allowed_method_names
101
+ allowed_methods.map(&:to_sym) + [:initialize]
101
102
  end
102
103
 
103
104
  def dsl_writer?(method_name)
@@ -106,7 +107,7 @@ module RuboCop
106
107
 
107
108
  def trivial_reader?(node)
108
109
  looks_like_trivial_reader?(node) &&
109
- !allowed_method?(node) && !allowed_reader?(node)
110
+ !allowed_method_name?(node) && !allowed_reader?(node)
110
111
  end
111
112
 
112
113
  def looks_like_trivial_reader?(node)
@@ -115,7 +116,7 @@ module RuboCop
115
116
 
116
117
  def trivial_writer?(node)
117
118
  looks_like_trivial_writer?(node) &&
118
- !allowed_method?(node) && !allowed_writer?(node.method_name)
119
+ !allowed_method_name?(node) && !allowed_writer?(node.method_name)
119
120
  end
120
121
 
121
122
  def_node_matcher :looks_like_trivial_writer?, <<~PATTERN
@@ -123,8 +124,8 @@ module RuboCop
123
124
  (defs _ _ (args (arg ...)) (ivasgn _ (lvar _)))}
124
125
  PATTERN
125
126
 
126
- def allowed_method?(node)
127
- allowed_methods.include?(node.method_name) ||
127
+ def allowed_method_name?(node)
128
+ allowed_method_names.include?(node.method_name) ||
128
129
  exact_name_match? && !names_match?(node)
129
130
  end
130
131