lib/grape/validations/validators/base.rb in grape-1.2.5 vs lib/grape/validations/validators/base.rb in grape-1.3.0

- old
+ new

@@ -1,5 +1,7 @@ +# frozen_string_literal: true + module Grape module Validations class Base attr_reader :attrs @@ -15,10 +17,11 @@ @attrs = Array(attrs) @option = options @required = required @scope = scope @fail_fast = opts[:fail_fast] || false + @allow_blank = opts[:allow_blank] || false end # Validates a given request. # @note Override #validate! unless you need to access the entire request. # @param request [Grape::Request] the request currently being handled @@ -38,15 +41,15 @@ attributes = SingleAttributeIterator.new(self, @scope, params) # we collect errors inside array because # there may be more than one error per field array_errors = [] - attributes.each do |resource_params, attr_name| - next if !@scope.required? && resource_params.empty? - next unless @scope.meets_dependency?(resource_params, params) + attributes.each do |val, attr_name, empty_val| + next if !@scope.required? && empty_val + next unless @scope.meets_dependency?(val, params) begin - if @required || resource_params.respond_to?(:key?) && resource_params.key?(attr_name) - validate_param!(attr_name, resource_params) + if @required || val.respond_to?(:key?) && val.key?(attr_name) + validate_param!(attr_name, val) end rescue Grape::Exceptions::Validation => e array_errors << e end end