lib/swaggard/swagger/definition.rb in swaggard-0.5.4 vs lib/swaggard/swagger/definition.rb in swaggard-1.0.0

- old
+ new

@@ -1,26 +1,39 @@ 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 - { - 'type' => 'object', - 'required' => [], - 'properties' => Hash[@properties.map { |property| [property.id, property.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 \ No newline at end of file +end