Sha256: 7b9555c6b0b0b3751cbd6277e2319f33deae8960da46aeb1021511478d08c9d9

Contents?: true

Size: 969 Bytes

Versions: 4

Compression:

Stored size: 969 Bytes

Contents

# frozen_string_literal: true

module Grape
  module Validations
    module Validators
      class MultipleParamsBase < Base
        def validate!(params)
          attributes = MultipleAttributesIterator.new(self, @scope, params)
          array_errors = []

          attributes.each do |resource_params, skip_value|
            next if skip_value

            begin
              validate_params!(resource_params)
            rescue Grape::Exceptions::Validation => e
              array_errors << e
            end
          end

          raise Grape::Exceptions::ValidationArrayErrors.new(array_errors) if array_errors.any?
        end

        private

        def keys_in_common(resource_params)
          return [] unless resource_params.is_a?(Hash)

          all_keys & resource_params.keys.map! { |attr| @scope.full_name(attr) }
        end

        def all_keys
          attrs.map { |attr| @scope.full_name(attr) }
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
grape-1.7.1 lib/grape/validations/validators/multiple_params_base.rb
grape-1.7.0 lib/grape/validations/validators/multiple_params_base.rb
grape-1.6.2 lib/grape/validations/validators/multiple_params_base.rb
grape-1.6.1 lib/grape/validations/validators/multiple_params_base.rb