class Swaggard::Swagger::Parameters::Body::Property

Attributes

id[R]

Public Class Methods

new(string) click to toggle source
# File lib/swaggard/swagger/parameters/body.rb, line 59
def initialize(string)
  parse(string)
end

Public Instance Methods

parse(string) click to toggle source

Example: [Array] status Filter by status. (e.g. status[]=1&status=2&status[]=3) Example: [Array] status(required) Filter by status. (e.g. status[]=1&status=2&status[]=3) Example: [Integer] media ID of the desired media type.

# File lib/swaggard/swagger/parameters/body.rb, line 77
def parse(string)
  string.gsub!("\n", ' ')
  data_type, required, name, options_and_description = string.match(/\A\[(\S*)\](!)?\s*([\w\[\]]*)\s*(.*)\Z/).captures
  allow_multiple = name.gsub!('[]', '')
  options, description = options_and_description.match(/\A(\[.*\])?(.*)\Z/).captures
  options = options ? options.gsub(/\[?\]?\s?/, '').split(',') : []

  @id = name
  @description = description if description.present?
  @type = Type.new([data_type])
  @required = required
  @options = options
end
required?() click to toggle source
# File lib/swaggard/swagger/parameters/body.rb, line 63
def required?
  @required
end
to_doc() click to toggle source
# File lib/swaggard/swagger/parameters/body.rb, line 67
def to_doc
  result = @type.to_doc
  result['description'] = @description if @description
  result['enum'] = @options if @options.present?
  result
end