class Openapi3Parser::NodeFactory::Openapi

Public Instance Methods

can_use_default?() click to toggle source
# File lib/openapi3_parser/node_factory/openapi.rb, line 23
def can_use_default?
  false
end

Private Instance Methods

build_object(data, context) click to toggle source
# File lib/openapi3_parser/node_factory/openapi.rb, line 29
def build_object(data, context)
  Node::Openapi.new(data, context)
end
security_factory(context) click to toggle source
# File lib/openapi3_parser/node_factory/openapi.rb, line 40
def security_factory(context)
  NodeFactory::Array.new(context,
                         value_factory: NodeFactory::SecurityRequirement)
end
servers_factory(context) click to toggle source
# File lib/openapi3_parser/node_factory/openapi.rb, line 33
def servers_factory(context)
  NodeFactory::Array.new(context,
                         default: [{ "url" => "/" }],
                         use_default_on_empty: true,
                         value_factory: NodeFactory::Server)
end
tags_factory(context) click to toggle source
# File lib/openapi3_parser/node_factory/openapi.rb, line 45
def tags_factory(context)
  validate_unique_tags = lambda do |validatable|
    names = validatable.factory.context.input.map { |i| i["name"] }
    return if names.uniq.count == names.count

    dupes = names.find_all { |name| names.count(name) > 1 }
    validatable.add_error(
      "Duplicate tag names: #{dupes.uniq.join(', ')}"
    )
  end

  NodeFactory::Array.new(context,
                         value_factory: NodeFactory::Tag,
                         validate: validate_unique_tags)
end