class Swaggard::Swagger::Property

Attributes

description[R]
id[R]
type[R]

Public Class Methods

new(yard_object) click to toggle source
# File lib/swaggard/swagger/property.rb, line 9
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

Public Instance Methods

required?() click to toggle source
# File lib/swaggard/swagger/property.rb, line 26
def required?
  @required
end
to_doc() click to toggle source
# File lib/swaggard/swagger/property.rb, line 30
def to_doc
  result = @type.to_doc
  result['description'] = @description if @description.present?
  result['enum'] = @options if @options.present?
  result
end