class Apigen::Rest::Output

Output is the response type associated with a specific status code for an API endpoint.

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/apigen/rest/output.rb, line 13
def initialize(name)
  @name = name
  @status = nil
  @type = nil
  @description = nil
end

Public Instance Methods

to_s() click to toggle source
# File lib/apigen/rest/output.rb, line 32
def to_s
  "#{@name} #{@status} #{@type}"
end
type(type = nil, &block) click to toggle source

Declares the output type.

# File lib/apigen/rest/output.rb, line 22
def type(type = nil, &block)
  return @type unless type
  @type = Apigen::Model.type type, &block
end
validate(model_registry) click to toggle source
# File lib/apigen/rest/output.rb, line 27
def validate(model_registry)
  validate_properties
  model_registry.check_type @type
end

Private Instance Methods

validate_properties() click to toggle source
# File lib/apigen/rest/output.rb, line 38
def validate_properties
  error = if !@name
            'One of the outputs is missing a name.'
          elsif !@status
            "Use `status [code]` to assign a status code to :#{@name}."
          elsif !@status
            "Use `type :typename` to assign a type to :#{@name}."
          end
  raise error unless error.nil?
end