Sha256: 51abd9ab606519f4a275f022952dca2bad48f83bdd0e77515a90f146d75ae173
Contents?: true
Size: 860 Bytes
Versions: 5
Compression:
Stored size: 860 Bytes
Contents
module Swaggard module Swagger class Definition attr_reader :id attr_writer :description, :title def initialize(id) @id = id @title = '' @properties = [] @description = '' end def add_property(property) @properties << property end def empty? @properties.empty? end 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 end end end
Version data entries
5 entries across 5 versions & 1 rubygems