Class: OpenApi::Components

Inherits:
Object
  • Object
show all
Includes:
EquatableAsContent
Defined in:
lib/open_api/components.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from EquatableAsContent

#==

Constructor Details

#initialize(schemas: nil, responses: nil, parameters: nil, examples: nil, request_bodies: nil, headers: nil, security_schemes: nil, links: nil, callbacks: nil) ⇒ Components

Returns a new instance of Components.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/open_api/components.rb', line 7

def initialize(schemas: nil, responses: nil, parameters: nil, examples: nil, request_bodies: nil, headers: nil, security_schemes: nil, links: nil, callbacks: nil)
  self.schemas = schemas
  self.responses = responses
  self.parameters = parameters
  self.examples = examples
  self.request_bodies = request_bodies
  self.headers = headers
  self.security_schemes = security_schemes
  self.links = links
  self.callbacks = callbacks
end

Instance Attribute Details

#callbacksObject

Returns the value of attribute callbacks.



5
6
7
# File 'lib/open_api/components.rb', line 5

def callbacks
  @callbacks
end

#examplesObject

Returns the value of attribute examples.



5
6
7
# File 'lib/open_api/components.rb', line 5

def examples
  @examples
end

#headersObject

Returns the value of attribute headers.



5
6
7
# File 'lib/open_api/components.rb', line 5

def headers
  @headers
end

Returns the value of attribute links.



5
6
7
# File 'lib/open_api/components.rb', line 5

def links
  @links
end

#parametersObject

Returns the value of attribute parameters.



5
6
7
# File 'lib/open_api/components.rb', line 5

def parameters
  @parameters
end

#request_bodiesObject

Returns the value of attribute request_bodies.



5
6
7
# File 'lib/open_api/components.rb', line 5

def request_bodies
  @request_bodies
end

#responsesObject

Returns the value of attribute responses.



5
6
7
# File 'lib/open_api/components.rb', line 5

def responses
  @responses
end

#schemasObject

Returns the value of attribute schemas.



5
6
7
# File 'lib/open_api/components.rb', line 5

def schemas
  @schemas
end

#security_schemesObject

Returns the value of attribute security_schemes.



5
6
7
# File 'lib/open_api/components.rb', line 5

def security_schemes
  @security_schemes
end

Class Method Details

.load(hash) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/open_api/components.rb', line 33

def self.load(hash)
  return unless hash

  new(
    schemas: hash["schemas"]&.map { |k, v| [k, Reference.load(v) || Schema.load(v)] }&.to_h,
    responses: hash["responses"]&.map { |k, v| [k, Reference.load(v) || Response.load(v)] }&.to_h,
    parameters: hash["parameters"]&.map { |k, v| [k, Reference.load(v) || Parameter.load(v)] }&.to_h,
    examples: hash["examples"]&.map { |k, v| [k, Reference.load(v) || Example.load(v)] }&.to_h,
    request_bodies: hash["requestBodies"]&.map { |k, v| [k, Reference.load(v) || RequestBody.load(v)] }&.to_h,
    headers: hash["headers"]&.map { |k, v| [k, Reference.load(v) || Header.load(v)] }&.to_h,
    security_schemes: hash["securitySchemes"]&.map { |k, v| [k, Reference.load(v) || SecuritySchema.load(v)] }&.to_h,
    links: hash["links"]&.map { |k, v| [k, Reference.load(v) || Link.load(v)] }&.to_h,
    callbacks: hash["callbacks"]&.map { |k, v| [k, Reference.load(v) || Callback.load(v)] }&.to_h,
  )
end

Instance Method Details

#serializable_hashObject



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/open_api/components.rb', line 19

def serializable_hash
  {
    "schemas" => schemas&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "responses" => responses&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "parameters" => parameters&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "examples" => examples&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "requestBodies" => request_bodies&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "headers" => headers&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "securitySchemes" => security_schemes&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "links" => links&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
    "callbacks" => callbacks&.map { |k, v| [k.to_s, v.serializable_hash] }&.to_h,
  }.compact
end