class Swaggard::Swagger::Definition

Attributes

description[W]
id[R]
title[W]

Public Class Methods

new(id) click to toggle source
# File lib/swaggard/swagger/definition.rb, line 8
def initialize(id)
  @id = id
  @title = ''
  @properties = []
  @description = ''
end

Public Instance Methods

add_property(property) click to toggle source
# File lib/swaggard/swagger/definition.rb, line 15
def add_property(property)
  @properties << property
end
empty?() click to toggle source
# File lib/swaggard/swagger/definition.rb, line 19
def empty?
  @properties.empty?
end
to_doc() click to toggle source
# File lib/swaggard/swagger/definition.rb, line 23
def to_doc
  {}.tap do |doc|
    doc['title'] = @title if @title.present?
    doc['type']  = 'object'

    doc['description'] = @description if @description.present?

    doc['properties'] =  Hash[@properties.map { |property| [property.id, property.to_doc] }]
    required_properties = @properties.select(&:required?).map(&:id)
    doc['required'] = required_properties if required_properties.any?
  end

end