Sha256: a5d95165036910a754ae1663715a7074778558ce39591b06ae34f3d6d16c8285
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
require_relative 'base' require_relative '../type' module Swaggard module Swagger module Parameters class Body < Base attr_reader :definition def initialize(operation_name) @in = 'body' @name = 'body' @description = '' @definition = Definition.new("#{operation_name}_body") end def add_property(string) property = Property.new(string) @definition.add_property(property) end def to_doc doc = super doc.delete('type') doc['required'] = false doc['schema'] = { '$ref' => "#/definitions/#{@definition.id}" } doc end private class Property attr_reader :id def initialize(string) parse(string) end def to_doc result = @type.to_doc result['description'] = @description if @description result end # 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[media_type_id] ID of the desired media type. def parse(string) data_type, name, required, description = string.match(/\A\[(\w*)\]\s*([\w\[\]]*)(\(required\))?\s*(.*)\Z/).captures @id = name @description = description @type = Type.new([data_type.downcase]) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
swaggard-0.0.4 | lib/swaggard/swagger/parameters/body.rb |