class OpenApi::DSL::ResponseObj

github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.0.md#responseObject

Attributes

headers[RW]
media_types[RW]
processed[RW]

Public Class Methods

new(desc) click to toggle source
# File lib/oas_objs/response_obj.rb, line 14
def initialize(desc)
  self.media_types = [ ]
  self.headers = { }
  self.processed   = { description: desc }
end

Public Instance Methods

absorb(desc, media_type, headers: { }, **media_hash) click to toggle source
# File lib/oas_objs/response_obj.rb, line 20
def absorb(desc, media_type, headers: { }, **media_hash)
  self.processed[:description] = desc if desc.present?
  self.headers.merge!(headers)
  media_types << MediaTypeObj.new(media_type, **media_hash)
  self
end
process() click to toggle source
# File lib/oas_objs/response_obj.rb, line 27
def process
  content = media_types.map(&:process).reduce({ }, &fusion)
  processed[:content] = content if content.present?
  _headers = headers.map do |name, schema|
    schema = schema.is_a?(Hash) ? schema : { type: schema }
    [ name, HeaderObj.new(schema.delete(:desc), schema).process ]
  end.to_h
  processed[:headers] = _headers if _headers.present?
  processed
end