Class: DryOpenApi::Components
- Inherits:
-
Object
- Object
- DryOpenApi::Components
- Extended by:
- Dry::Initializer
- Includes:
- EquatableAsContent
- Defined in:
- lib/dry_open_api/components.rb
Overview
Class Method Summary collapse
-
.load(hash) ⇒ Object
rubocop:disable Metrics/PerceivedComplexity.
Instance Method Summary collapse
-
#serializable_hash ⇒ Object
rubocop:disable Metrics/MethodLength.
Methods included from EquatableAsContent
Class Method Details
.load(hash) ⇒ Object
rubocop:disable Metrics/PerceivedComplexity
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/dry_open_api/components.rb', line 35 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_hash ⇒ Object
rubocop:disable Metrics/MethodLength
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/dry_open_api/components.rb', line 20 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 |