class Swagger::Data::Parameter

Public Class Methods

from_grape(grape_parameter) click to toggle source
# File lib/ruby-swagger/data/parameter.rb, line 56
def self.from_grape(grape_parameter)
  return nil if grape_parameter.nil? || grape_parameter.last[:type].is_a?(Hash) || grape_parameter.last[:type] == 'Hash'

  grape_type = Swagger::Grape::Param.new(grape_parameter.last).to_swagger

  parameter = Swagger::Data::Parameter.new
  parameter.name = grape_parameter.first
  parameter.in = 'formData'
  parameter.description = grape_type['description']
  parameter.required = grape_type['required']
  parameter.default = grape_type['default']
  parameter.type = grape_type['type']
  parameter.format = grape_type['format']

  if parameter.type == 'array'
    items = Swagger::Data::Items.new
    items.type = 'string'
    parameter.items = items
  end

  parameter.type.nil? ? nil : parameter
rescue => e
  puts "error processing parameter #{grape_parameter} [#{e}]"
  raise e
end
parse(new_parameter) click to toggle source
# File lib/ruby-swagger/data/parameter.rb, line 15
def self.parse(new_parameter)
  return nil unless new_parameter

  p = Swagger::Data::Parameter.new
  %w(name in description required).each do |field|
    p.send("#{field}=", new_parameter[field])
  end

  if p.in == 'body'
    p.schema = Swagger::Data::Schema.parse(new_parameter['schema'])
  else
    %w(type format allowEmptyValue collectionFormat default maximum exclusiveMaximum minimum exclusiveMinimum maxLength minLength pattern maxItems minItems uniqueItems enum multipleOf).each do |field|
      p.send("#{field}=", new_parameter[field])
    end
    p.items = Swagger::Data::Items.parse(new_parameter['items'])
  end

  p
end

Public Instance Methods

in=(new_in) click to toggle source
# File lib/ruby-swagger/data/parameter.rb, line 40
def in=(new_in)
  raise ArgumentError.new('Swagger::Data::Parameter#in= called with nil') if new_in.nil?
  raise ArgumentError.new("Swagger::Data::Parameter#in= called with invalid value #{new_in}") unless %w(query header path formData body).include?(new_in)

  @in = new_in
end
items=(new_items) click to toggle source
# File lib/ruby-swagger/data/parameter.rb, line 47
def items=(new_items)
  raise ArgumentError.new('Swagger::Data::Parameter#items= items is nil') if new_items.nil? && @type == 'array'
  if !new_items.nil? && !new_items.is_a?(Swagger::Data::Items)
    new_items = Swagger::Data::Items.parse(new_items)
  end

  @items = new_items
end
name=(new_name) click to toggle source
# File lib/ruby-swagger/data/parameter.rb, line 35
def name=(new_name)
  raise ArgumentError.new('Swagger::Data::Parameter#name called with nil') if new_name.nil?
  @name = new_name
end