def validate_param!(attr_name, params)
return unless params.is_a?(Hash)
return unless params[attr_name] || required_for_root_scope?
param_array = params[attr_name].nil? ? [nil] : Array.wrap(params[attr_name])
raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: except_message \
unless check_excepts(param_array)
raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: message(:values) \
unless check_values(param_array, attr_name)
raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: message(:values) \
if @proc && !param_array.all? { |param| @proc.call(param) }
end