Sha256: 7a928ca4b71ef4d386e31ae210c39112662d79d895058c47b16927dce4fbab87

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

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

# These are in the footer as a cyclic dependency can stop this module loading

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
openapi3_parser-0.5.2 lib/openapi3_parser/node_factory/parameter_like.rb