Class: Swagger::Schema::Parameters

Inherits:
Array
  • Object
show all
Defined in:
lib/swagger/schema/parameters.rb,
lib/swagger/schema/parameters/validator.rb,
lib/swagger/schema/parameters/deserializer.rb

Defined Under Namespace

Classes: Deserializer, Validator

Instance Method Summary collapse

Instance Method Details

#[](index) ⇒ Object



10
11
12
13
# File 'lib/swagger/schema/parameters.rb', line 10

def [](index)
  parameter = super(index)
  Parameter.new(parameter) if parameter
end

#by_name(name) ⇒ Object



15
16
17
18
19
# File 'lib/swagger/schema/parameters.rb', line 15

def by_name(name)
  name_str = name.to_s
  parameter = find { |param| Util.try_hash(param, :name).to_s == name_str }
  Parameter.new(parameter) if parameter
end


33
34
35
# File 'lib/swagger/schema/parameters.rb', line 33

def cookie
  select_by("cookie")
end

#deserializer(options = {}, store = true) ⇒ Object



65
66
67
68
# File 'lib/swagger/schema/parameters.rb', line 65

def deserializer(options = {}, store = true)
  use_options = store ? Swagger::Serializer::Store.current.deserialize_options.merge(options) : options
  Deserializer.new(self, use_options)
end

#headerObject



25
26
27
# File 'lib/swagger/schema/parameters.rb', line 25

def header
  select_by("header")
end

#pathObject



29
30
31
# File 'lib/swagger/schema/parameters.rb', line 29

def path
  select_by("path")
end

#queryObject



21
22
23
# File 'lib/swagger/schema/parameters.rb', line 21

def query
  select_by("query")
end

#select_by(in_place) ⇒ Object



37
38
39
40
# File 'lib/swagger/schema/parameters.rb', line 37

def select_by(in_place)
  in_place_str = in_place.to_s
  Parameters.new(select { |param| Util.try_hash(param, :in).to_s == in_place_str })
end

#serializer(options = {}, store = true) ⇒ Object



60
61
62
63
# File 'lib/swagger/schema/parameters.rb', line 60

def serializer(options = {}, store = true)
  use_options = store ? Swagger::Serializer::Store.current.serialize_options.merge(options) : options
  JSON::Schema::Serializer.new(to_json_schema, use_options)
end

#to_json_schemaObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/swagger/schema/parameters.rb', line 42

def to_json_schema
  properties = {}
  required = []
  each do |param|
    parameter = Parameter.new(param)
    name = parameter.name.to_s
    properties[name] = parameter.to_json_schema
    required << name if parameter.required || parameter.path?
    if Util.try_hash(properties[name], :type).to_s == "string" && !parameter.allowEmptyValue &&
         Util.try_hash(properties[name], :minLength).nil?
      properties[name]["minLength"] = 1
    end
  end
  schema = { "type" => "object", "properties" => properties }
  schema["required"] = required unless required.empty?
  schema
end

#validatorObject



70
71
72
# File 'lib/swagger/schema/parameters.rb', line 70

def validator
  Validator.new(self)
end