Class: Swagger::Data::Document

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

Overview

Constant Summary collapse

SPEC_VERSION =
'2.0'
DEFAULT_HOST =
'localhost:80'

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Object

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

Constructor Details

#initializeDocument

create an empty document



24
25
26
27
28
# File 'lib/ruby-swagger/data/document.rb', line 24

def initialize
  @swagger = '2.0'
  @info = Swagger::Data::Info.new
  @paths = Swagger::Data::Paths.new
end

Class Method Details

.parse(document) ⇒ Object

parse an hash document into a set of Swagger objects

document is a hash

Raises:

  • (ArgumentError)


32
33
34
35
36
# File 'lib/ruby-swagger/data/document.rb', line 32

def self.parse(document)
  raise ArgumentError.new('Swagger::Document#parse - document object is nil') unless document

  Swagger::Data::Document.new.bulk_set(document)
end

Instance Method Details

#add_tag(new_tag) ⇒ Object



159
160
161
162
163
164
165
166
167
# File 'lib/ruby-swagger/data/document.rb', line 159

def add_tag(new_tag)
  return nil unless new_tag

  unless new_tag.is_a?(Swagger::Data::Tag)
    new_tag = Swagger::Data::Tag.parse(new_tag)
  end

  @tags.push(new_tag)
end

#basePath=(new_path) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/ruby-swagger/data/document.rb', line 51

def basePath=(new_path)
  new_path = new_path.nil? ? '/' : new_path

  unless new_path =~ /^\/.+$/
    new_path = "/#{new_path}" # new path must start with a /
  end

  @basePath ||= new_path
end

#consumes=(new_consumes) ⇒ Object



81
82
83
84
85
86
87
88
89
# File 'lib/ruby-swagger/data/document.rb', line 81

def consumes=(new_consumes)
  return nil unless new_consumes

  new_consumes.each do |consume|
    raise ArgumentError.new("Swagger::Data::Document#consumes= - unrecognized consume type #{consume}]") unless Swagger::Data::Mime.valid?(consume)
  end

  @consumes = new_consumes
end

#definitions=(new_definitions) ⇒ Object



99
100
101
102
103
104
105
106
107
# File 'lib/ruby-swagger/data/document.rb', line 99

def definitions=(new_definitions)
  return nil unless new_definitions

  unless new_definitions.is_a?(Swagger::Data::Definitions)
    new_definitions = Swagger::Data::Definitions.parse(new_definitions)
  end

  @definitions = new_definitions
end

#externalDocs=(new_externalDocs) ⇒ Object



169
170
171
172
173
174
175
176
177
# File 'lib/ruby-swagger/data/document.rb', line 169

def externalDocs=(new_externalDocs)
  return nil unless new_externalDocs

  unless new_externalDocs.is_a?(Swagger::Data::ExternalDocumentation)
    new_externalDocs = Swagger::Data::ExternalDocumentation.parse(new_externalDocs)
  end

  @externalDocs = new_externalDocs
end

#info=(new_info) ⇒ Object

Raises:

  • (ArgumentError)


43
44
45
46
47
48
49
# File 'lib/ruby-swagger/data/document.rb', line 43

def info=(new_info)
  raise ArgumentError.new('Swagger::Document#info= - info object is nil') unless new_info

  new_info = Swagger::Data::Info.parse(new_info) unless new_info.is_a?(Swagger::Data::Info)

  @info = new_info
end

#parameters=(new_parameters) ⇒ Object



109
110
111
112
113
114
115
116
117
# File 'lib/ruby-swagger/data/document.rb', line 109

def parameters=(new_parameters)
  return nil unless new_parameters

  unless new_parameters.is_a?(Swagger::Data::Parameters)
    new_parameters = Swagger::Data::Parameters.parse(new_parameters)
  end

  @parameters = new_parameters
end

#paths=(new_paths) ⇒ Object

Raises:

  • (ArgumentError)


91
92
93
94
95
96
97
# File 'lib/ruby-swagger/data/document.rb', line 91

def paths=(new_paths)
  raise ArgumentError.new('Swagger::Data::Document#paths= - paths is nil') unless paths

  new_paths = Swagger::Data::Paths.parse(new_paths) unless new_paths.is_a?(Swagger::Data::Paths)

  @paths = new_paths
end

#produces=(new_produces) ⇒ Object



71
72
73
74
75
76
77
78
79
# File 'lib/ruby-swagger/data/document.rb', line 71

def produces=(new_produces)
  return nil unless new_produces

  new_produces.each do |produce|
    raise ArgumentError.new("Swagger::Data::Document#produces= - unrecognized produce type #{produce}") unless Swagger::Data::Mime.valid?(produce)
  end

  @produces = new_produces
end

#responses=(new_responses) ⇒ Object



119
120
121
122
123
124
125
126
127
# File 'lib/ruby-swagger/data/document.rb', line 119

def responses=(new_responses)
  return nil unless new_responses

  unless new_responses.is_a?(Swagger::Data::Responses)
    new_responses = Swagger::Data::Responses.parse(new_responses)
  end

  @responses = new_responses
end

#schemes=(new_schemes) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/ruby-swagger/data/document.rb', line 61

def schemes=(new_schemes)
  return nil unless new_schemes

  new_schemes.each do |scheme|
    raise ArgumentError.new("Swagger::Data::Document#schemes= - unrecognized scheme #{scheme}") unless %w(http https ws wss).include?(scheme)
  end

  @schemes = new_schemes
end

#security=(new_security) ⇒ Object



139
140
141
142
143
144
145
146
147
# File 'lib/ruby-swagger/data/document.rb', line 139

def security=(new_security)
  return nil unless new_security

  unless new_security.is_a?(Swagger::Data::SecurityRequirement)
    new_security = Swagger::Data::SecurityRequirement.parse(new_security)
  end

  @security = new_security
end

#securityDefinitions=(newSecurityDef) ⇒ Object



129
130
131
132
133
134
135
136
137
# File 'lib/ruby-swagger/data/document.rb', line 129

def securityDefinitions=(newSecurityDef)
  return nil unless newSecurityDef

  unless newSecurityDef.is_a?(Swagger::Data::SecurityDefinitions)
    newSecurityDef = Swagger::Data::SecurityDefinitions.parse(newSecurityDef)
  end

  @securityDefinitions = newSecurityDef
end

#swagger=(new_swagger) ⇒ Object

Raises:

  • (ArgumentError)


38
39
40
41
# File 'lib/ruby-swagger/data/document.rb', line 38

def swagger=(new_swagger)
  raise ArgumentError.new("Swagger::Document#swagger= - the document is not a swagger #{SPEC_VERSION} version") unless '2.0' == new_swagger
  @swagger = new_swagger
end

#tags=(new_tags) ⇒ Object



149
150
151
152
153
154
155
156
157
# File 'lib/ruby-swagger/data/document.rb', line 149

def tags=(new_tags)
  return nil unless new_tags

  @tags = []

  new_tags.each do |tag|
    add_tag(tag)
  end
end