Class: Swagger::Data::Parameter

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby-swagger/data/parameter.rb

Overview

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Object

attr_swagger, #bulk_set, #swagger_attributes, #to_json, #to_swagger, #to_yaml

Class Method Details

.from_grape(grape_parameter) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# 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) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 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

Instance Method Details

#in=(new_in) ⇒ Object

Raises:

  • (ArgumentError)


40
41
42
43
44
45
# 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) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
51
52
53
54
# 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) ⇒ Object

Raises:

  • (ArgumentError)


35
36
37
38
# 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