class OpenApi::Specification

github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#oasObject

Attributes

components[RW]
external_docs[RW]
info[RW]
openapi[RW]
paths[RW]
security[RW]
servers[RW]
tags[RW]

Public Class Methods

load(hash) click to toggle source
# File lib/open_api/specification.rb, line 30
def self.load(hash)
  return unless hash

  new(
    openapi: hash["openapi"].to_s,
    info: Info.load(hash["info"]),
    paths: Paths.load(hash["paths"]),
    components: Components.load(hash["components"]),
    security: hash["security"]&.map { |requirement_hash| SecurityRequirement.load(requirement_hash) },
    tags: hash["tags"]&.map { |tag_hash| Tag.load(tag_hash) },
    external_docs: ExternalDocumentation.load(hash["externalDocs"]),
  )
end
new(openapi:, info:, servers: nil, paths:, components: nil, security: nil, tags: nil, external_docs: nil) click to toggle source
# File lib/open_api/specification.rb, line 8
def initialize(openapi:, info:, servers: nil, paths:, components: nil, security: nil, tags: nil, external_docs: nil)
  self.openapi = openapi
  self.info = info
  self.paths = paths
  self.components = components
  self.security = security
  self.tags = tags
  self.external_docs = external_docs
end

Public Instance Methods

serializable_hash() click to toggle source
# File lib/open_api/specification.rb, line 18
def serializable_hash
  {
    "openapi" => openapi.to_s,
    "info" => info.serializable_hash,
    "paths" => paths.serializable_hash,
    "components" => components&.serializable_hash,
    "security" => security&.map(&:serializable_hash),
    "tags" => tags&.map(&:serializable_hash),
    "externalDocs" => external_docs&.serializable_hash,
  }.compact
end