Sha256: 0958f36ab5416b02d01b76b217a29623edcb471e6fa3bd9f86693a233f63a027

Contents?: true

Size: 690 Bytes

Versions: 4

Compression:

Stored size: 690 Bytes

Contents

class OpenAPIParser::SchemaValidator
  class ArrayValidator < Base
    # @param [Array] value
    # @param [OpenAPIParser::Schemas::Schema] schema
    def coerce_and_validate(value, schema, **_keyword_args)
      return OpenAPIParser::ValidateError.build_error_result(value, schema) unless value.kind_of?(Array)

      # array type have an schema in items property
      items_schema = schema.items

      coerced_values = value.map do |v|
        coerced, err = validatable.validate_schema(v, items_schema)
        return [nil, err] if err

        coerced
      end

      value.each_index { |idx| value[idx] = coerced_values[idx] } if @coerce_value

      [value, nil]
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
openapi_parser-0.4.1 lib/openapi_parser/schema_validators/array_validator.rb
openapi_parser-0.4.0 lib/openapi_parser/schema_validators/array_validator.rb
openapi_parser-0.3.1 lib/openapi_parser/schema_validators/array_validator.rb
openapi_parser-0.3.0 lib/openapi_parser/schema_validators/array_validator.rb