class Grape::Validations::Validators::DefaultValidator

Public Class Methods

new(attrs, options, required, scope, **opts) click to toggle source
# File lib/grape/validations/validators/default_validator.rb, line 7
def initialize(attrs, options, required, scope, **opts)
  @default = options
  super
end

Public Instance Methods

validate!(params) click to toggle source
# File lib/grape/validations/validators/default_validator.rb, line 26
def validate!(params)
  attrs = SingleAttributeIterator.new(self, @scope, params)
  attrs.each do |resource_params, attr_name|
    next unless @scope.meets_dependency?(resource_params, params)

    validate_param!(attr_name, resource_params) if resource_params.is_a?(Hash) && resource_params[attr_name].nil?
  end
end
validate_param!(attr_name, params) click to toggle source
# File lib/grape/validations/validators/default_validator.rb, line 12
def validate_param!(attr_name, params)
  params[attr_name] = if @default.is_a? Proc
                        if @default.parameters.empty?
                          @default.call
                        else
                          @default.call(params)
                        end
                      elsif @default.frozen? || !@default.duplicable?
                        @default
                      else
                        @default.dup
                      end
end