Sha256: 9ea3e56f28bdb9b36e67b450395ee4cb8e1a7f709a5ca5840fe3bc6d4b479d18
Contents?: true
Size: 989 Bytes
Versions: 5
Compression:
Stored size: 989 Bytes
Contents
require_relative 'type' module Swaggard module Swagger class Property attr_reader :id, :type, :description def initialize(yard_object) name = yard_object.name.dup options_and_description = yard_object.text&.dup || '' options_and_description.gsub!("\n", ' ') options, description = options_and_description.match(/\A(\[.*\])?(.*)\Z/).captures options = options ? options.gsub(/\[?\]?\s?/, '').split(',') : [] description = description.strip required = name.gsub!(/^!/, '') @id = name @type = Type.new(yard_object.types) @description = description @required = required.present? @options = options end def required? @required end def to_doc result = @type.to_doc result['description'] = @description if @description.present? result['enum'] = @options if @options.present? result end end end end
Version data entries
5 entries across 5 versions & 1 rubygems