Sha256: fd169dd7ed76cda2a395c958d3c325a8be27181deb0cb7b3da10a9ec657bfd4a

Contents?: true

Size: 885 Bytes

Versions: 7

Compression:

Stored size: 885 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|
            validate_params!(resource_params)
          rescue Grape::Exceptions::Validation => e
            array_errors << e
          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

7 entries across 7 versions & 1 rubygems

Version Path
grape-2.2.0 lib/grape/validations/validators/multiple_params_base.rb
grape-2.1.3 lib/grape/validations/validators/multiple_params_base.rb
grape-2.1.2 lib/grape/validations/validators/multiple_params_base.rb
grape-2.1.1 lib/grape/validations/validators/multiple_params_base.rb
grape-2.1.0 lib/grape/validations/validators/multiple_params_base.rb
grape-2.0.0 lib/grape/validations/validators/multiple_params_base.rb
grape-1.8.0 lib/grape/validations/validators/multiple_params_base.rb