class RuboCop::Cop::Metrics::ParameterLists
This cop checks for methods with too many parameters. The maximum number of parameters is configurable. Keyword arguments can optionally be excluded from the total count.
Constants
- MSG
Public Instance Methods
on_args(node)
click to toggle source
# File lib/rubocop/cop/metrics/parameter_lists.rb, line 14 def on_args(node) count = args_count(node) return unless count > max_params add_offense(node) do self.max = count end end
Private Instance Methods
args_count(node)
click to toggle source
# File lib/rubocop/cop/metrics/parameter_lists.rb, line 29 def args_count(node) if count_keyword_args? node.children.size else node.children.count { |a| !%i[kwoptarg kwarg].include?(a.type) } end end
count_keyword_args?()
click to toggle source
# File lib/rubocop/cop/metrics/parameter_lists.rb, line 41 def count_keyword_args? cop_config['CountKeywordArgs'] end
max_params()
click to toggle source
# File lib/rubocop/cop/metrics/parameter_lists.rb, line 37 def max_params cop_config['Max'] end
message(node)
click to toggle source
# File lib/rubocop/cop/metrics/parameter_lists.rb, line 25 def message(node) format(MSG, max_params, args_count(node), max_params) end