Module: Scorpio::OpenAPI::Document
- Includes:
- Configurables
- Included in:
- Google::RestDescription, V2Methods, V3Methods
- Defined in:
- lib/scorpio/openapi/document.rb,
lib/scorpio/openapi/document.rb,
lib/scorpio/openapi/document.rb
Overview
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.
Defined Under Namespace
Modules: Configurables, Descendent, V2Methods, V3Methods
Instance Attribute Summary
Attributes included from Configurables
#accept, #authorization, #faraday_adapter, #faraday_builder, #logger, #request_headers, #user_agent
Class Method Summary collapse
-
.from_instance(instance, **kw) ⇒ Object
deprecated
Deprecated.
after v0.8.0. use
new_document. -
.new_document(instance, **new_param) ⇒ JSI::Base + Scorpio::OpenAPI::Document
takes a document, generally a Hash, and returns a Scorpio OpenAPI Document instantiating it.
Instance Method Summary collapse
Class Method Details
.from_instance(instance, **kw) ⇒ Object
Deprecated.
after v0.8.0. use new_document.
39 40 41 |
# File 'lib/scorpio/openapi/document.rb', line 39 def from_instance(instance, **kw) Scorpio.new_document(instance, **kw) end |
.new_document(instance, **new_param) ⇒ JSI::Base + Scorpio::OpenAPI::Document
takes a document, generally a Hash, and returns a Scorpio OpenAPI Document instantiating it.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/scorpio/openapi/document.rb', line 16 def new_document(instance, **new_param) 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'].is_a?(String) && instance['swagger'] =~ /\A2(\.|\z)/) || instance['swagger'] == 2 Scorpio::OpenAPI::V2::Document.new_jsi(instance, **new_param) elsif (instance['openapi'].is_a?(String) && instance['openapi'] =~ /\A3\.0(\.|\z)/) || instance['openapi'] == 3.0 Scorpio::OpenAPI::V3_0::Document.new_jsi(instance, **new_param) elsif (instance['openapi'].is_a?(String) && instance['openapi'] =~ /\A3\.1(\.|\z)/) || instance['openapi'] == 3.1 Scorpio::OpenAPI::V3_1.new_document(instance, **new_param) elsif instance['kind'] == 'discovery#restDescription' Scorpio::Google::RestDescription.new_jsi(instance, register: true, **new_param) 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 |
Instance Method Details
#each_operation(&block) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/scorpio/openapi/document.rb', line 109 def each_operation(&block) return(to_enum(__method__)) unless block paths.each do |path, path_item| path_item.each do |http_method, operation| if operation.is_a?(Scorpio::OpenAPI::Operation) yield(operation) end end end end |
#operations ⇒ Object
104 105 106 107 |
# File 'lib/scorpio/openapi/document.rb', line 104 def operations return @operations if instance_variable_defined?(:@operations) @operations = OperationsScope.new(each_operation) end |
#title ⇒ Object
121 122 123 |
# File 'lib/scorpio/openapi/document.rb', line 121 def title info && info.title end |