class RuboCop::Cop::Betterment::DynamicParams

Constants

MSG_DYNAMIC_PARAMS

Public Instance Methods

on_send(node) click to toggle source
# File lib/rubocop/cop/betterment/dynamic_params.rb, line 16
def on_send(node)
  _, _, *arg_nodes = *node
  return unless permit_or_hash?(node) && Utils::Parser.get_root_token(node) == :params

  dynamic_param = find_dynamic_param(arg_nodes)
  add_offense(dynamic_param, message: MSG_DYNAMIC_PARAMS) if dynamic_param
end

Private Instance Methods

find_dynamic_param(arg_nodes) click to toggle source
# File lib/rubocop/cop/betterment/dynamic_params.rb, line 26
def find_dynamic_param(arg_nodes)
  return unless arg_nodes

  arg_nodes.find do |arg|
    arg.array_type? && find_dynamic_param(arg.values) || !arg.literal? && !arg.const_type?
  end
end