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