Class: Swaggard::Swagger::Property

Inherits:
Object
  • Object
show all
Defined in:
lib/swaggard/swagger/property.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(yard_object) ⇒ Property

Returns a new instance of Property.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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

Instance Attribute Details

#descriptionObject (readonly)

Returns the value of attribute description.



7
8
9
# File 'lib/swaggard/swagger/property.rb', line 7

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



7
8
9
# File 'lib/swaggard/swagger/property.rb', line 7

def id
  @id
end

#typeObject (readonly)

Returns the value of attribute type.



7
8
9
# File 'lib/swaggard/swagger/property.rb', line 7

def type
  @type
end

Instance Method Details

#required?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/swaggard/swagger/property.rb', line 26

def required?
  @required
end

#to_docObject



30
31
32
33
34
35
# 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