Sha256: 45b805a72f38fcd83b850ea15bbc5dade3fc7da814663dbf10eba7152be5bdc7

Contents?: true

Size: 1013 Bytes

Versions: 3

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

module Openapi3Parser
  module NodeFactory
    module ParameterLike
      def default_explode
        context.input["style"] == "form"
      end

      def schema_factory(context)
        factory = NodeFactory::OptionalReference.new(NodeFactory::Schema)
        factory.call(context)
      end

      def examples_factory(context)
        factory = NodeFactory::OptionalReference.new(NodeFactory::Schema)
        NodeFactory::Map.new(context,
                             default: nil,
                             value_factory: factory)
      end

      def content_factory(context)
        NodeFactory::Map.new(context,
                             default: nil,
                             value_factory: NodeFactory::MediaType,
                             validate: method(:validate_content))
      end

      def validate_content(validatable)
        return if validatable.input.size == 1
        validatable.add_error("Must only have one item")
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
openapi3_parser-0.7.0 lib/openapi3_parser/node_factory/parameter_like.rb
openapi3_parser-0.6.1 lib/openapi3_parser/node_factory/parameter_like.rb
openapi3_parser-0.6.0 lib/openapi3_parser/node_factory/parameter_like.rb