module Scorpio::OpenAPI::Document

A document that defines or describes an API. An OpenAPI description document uses and conforms to the OpenAPI Specification.

Scorpio::OpenAPI::Document is a module common to V2 and V3 documents.

Public Class Methods

from_instance(instance) click to toggle source

takes a document, generally a Hash, and returns a Scorpio OpenAPI Document instantiating it.

@param instance [#to_hash] the document to represent as a Scorpio OpenAPI Document @return [Scorpio::OpenAPI::V2::Document, Scorpio::OpenAPI::V3::Document]

# File lib/scorpio/openapi/document.rb, line 14
def from_instance(instance)
  if instance.is_a?(Scorpio::OpenAPI::Document)
    instance
  elsif instance.is_a?(JSI::Base)
    raise(TypeError, "instance is unexpected JSI type: #{instance.class.inspect}")
  elsif instance.respond_to?(:to_hash)
    if instance['swagger'] =~ /\A2(\.|\z)/
      instance = Scorpio::OpenAPI::V2::Document.new_jsi(instance)
    elsif instance['openapi'] =~ /\A3(\.|\z)/
      instance = Scorpio::OpenAPI::V3::Document.new_jsi(instance)
    else
      raise(ArgumentError, "instance does not look like a recognized openapi document")
    end
  else
    raise(TypeError, "instance does not look like a hash (json object)")
  end
end

Public Instance Methods

operations() click to toggle source
# File lib/scorpio/openapi/document.rb, line 74
def operations
  return @operations if instance_variable_defined?(:@operations)
  @operations = OperationsScope.new(self)
end
v2?() click to toggle source
# File lib/scorpio/openapi/document.rb, line 66
def v2?
  is_a?(V2::Document)
end
v3?() click to toggle source
# File lib/scorpio/openapi/document.rb, line 70
def v3?
  is_a?(V3::Document)
end