class OpenApi::PathItem

github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#path-item-object

Constants

OPERATION_NAMES

Attributes

description[RW]
operations[RW]
parameters[RW]
ref[RW]
servers[RW]
summary[RW]

Public Class Methods

load(hash) click to toggle source
# File lib/open_api/path_item.rb, line 30
def self.load(hash)
  operations = hash.select { |key| key.to_sym.in?(OPERATION_NAMES) }
  new(
    ref: hash["$ref"]&.to_s,
    summary: hash["summary"]&.to_s,
    description: hash["description"]&.to_s,
    servers: hash["servers"]&.map { |server_hash| Server.load(server_hash) },
    parameters: hash["parameters"]&.map { |h| Reference.load(h) || Parameter.load(h) },
    **operations.map { |k ,v| [k.to_sym, Operation.load(v)] }.to_h,
  )
end
new(ref: nil, summary: nil, description: nil, servers: nil, parameters: nil, **operations) click to toggle source
# File lib/open_api/path_item.rb, line 10
def initialize(ref: nil, summary: nil, description: nil, servers: nil, parameters: nil, **operations)
  self.ref = ref
  self.summary = summary
  self.description = description
  self.servers = servers
  self.parameters = parameters
  self.operations = operations.map { |k, v| [k.to_s.underscore, v] }.to_h.with_indifferent_access
end

Public Instance Methods

serializable_hash() click to toggle source
# File lib/open_api/path_item.rb, line 19
def serializable_hash
  {
    "ref" => ref&.to_s,
    "summary" => summary&.to_s,
    "description" => description&.to_s,
    "servers" => servers&.map(&:serializable_hash),
    "parameters" => parameters&.map(&:serializable_hash),
  }.merge(operations.map { |k, v| [k.to_s.underscore, v.serializable_hash] }.to_h)
   .compact
end