class Openapi3Parser::NodeFactory::PathItem
Private Instance Methods
build_object(data, node_context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 25 def build_object(data, node_context) ref = data.delete("$ref") context = if node_context.input.keys == %w[$ref] referenced_factory = ref.node_factory.referenced_factory Node::Context.resolved_reference( node_context, referenced_factory.context ) else node_context end reference_data = ref.nil_input? ? {} : ref.node.node_data data = merge_data(reference_data, data).tap do |d| d["servers"] = root_server_data(context) if d["servers"].node.empty? end Node::PathItem.new(data, context) end
build_resolved_input()
click to toggle source
Calls superclass method
Openapi3Parser::NodeFactory::Object#build_resolved_input
# File lib/openapi3_parser/node_factory/path_item.rb, line 61 def build_resolved_input ref = data["$ref"] data_without_ref = super.tap { |d| d.delete("$ref") } return data_without_ref unless ref merge_data(ref.resolved_input || {}, data_without_ref) end
merge_data(base, priority)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 69 def merge_data(base, priority) base.merge(priority) do |_, old, new| if new.nil? || new.respond_to?(:nil_input?) && new.nil_input? old else new end end end
operation_factory(context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 50 def operation_factory(context) NodeFactory::Operation.new(context) end
parameters_factory(context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 79 def parameters_factory(context) factory = NodeFactory::OptionalReference.new(NodeFactory::Parameter) validate_parameters = lambda do |validatable| validatable.add_error( Validators::DuplicateParameters.call( validatable.factory.resolved_input ) ) end NodeFactory::Array.new(context, value_factory: factory, validate: validate_parameters) end
ref_factory(context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 46 def ref_factory(context) NodeFactory::Fields::Reference.new(context, self.class) end
root_server_data(node_context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 95 def root_server_data(node_context) root_servers = node_context.document.root.node_data["servers"] Node::Placeholder.new(root_servers.node_factory, "servers", node_context) end
servers_factory(context)
click to toggle source
# File lib/openapi3_parser/node_factory/path_item.rb, line 54 def servers_factory(context) NodeFactory::Array.new( context, value_factory: NodeFactory::Server ) end