Class: Swagger::Blocks::Node
- Inherits:
-
Object
- Object
- Swagger::Blocks::Node
show all
- Defined in:
- lib/swagger/blocks.rb
Overview
Base node for representing every object in the Swagger DSL.
Direct Known Subclasses
AllOfNode, ApiAuthorizationNode, ApiAuthorizationScopeNode, ApiAuthorizationsNode, ApiDeclarationNode, ApiNode, AuthorizationCodeNode, ContactNode, ExampleNode, ExternalDocsNode, GrantTypesNode, HeaderNode, ImplicitNode, InfoNode, ItemsNode, LicenseNode, LoginEndpointNode, ModelNode, ModelsNode, OperationNode, ParameterNode, PathNode, PropertiesNode, PropertyNode, ResourceListingAuthorizationNode, ResourceListingAuthorizationsNode, ResourceNode, ResponseNode, RootNode, SchemaNode, ScopeNode, ScopesNode, SecurityRequirementNode, SecuritySchemeNode, TagNode, TokenEndpointNode, TokenRequestEndpointNode, XmlNode
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
212
213
214
|
# File 'lib/swagger/blocks.rb', line 212
def name
@name
end
|
#version ⇒ Object
260
261
262
263
264
265
266
267
268
269
|
# File 'lib/swagger/blocks.rb', line 260
def version
return @version if instance_variable_defined?('@version') && @version
if data.has_key?(:swagger) && data[:swagger] == '2.0'
'2.0'
elsif data.has_key?(:swaggerVersion) && data[:swaggerVersion] == '1.2'
'1.2'
else
raise DeclarationError.new("You must specify swaggerVersion '1.2' or swagger '2.0'")
end
end
|
Class Method Details
.call(options = {}, &block) ⇒ Object
215
216
217
218
219
220
221
222
223
|
# File 'lib/swagger/blocks.rb', line 215
def self.call(options = {}, &block)
instance = new
instance.name = options[:name] if options[:name]
instance.version = options[:version]
instance.keys options[:inline_keys]
instance.instance_eval(&block) if block
instance
end
|
Instance Method Details
#as_json ⇒ Object
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
|
# File 'lib/swagger/blocks.rb', line 225
def as_json
result = {}
self.data.each do |key, value|
if value.is_a?(Node)
result[key] = value.as_json
elsif value.is_a?(Array)
result[key] = []
value.each { |v| result[key] << (v.respond_to?(:as_json) ? v.as_json : v) }
elsif is_swagger_2_0? && value.is_a?(Hash)
result[key] = {}
value.each_pair {|k, v| result[key][k] = (v.respond_to?(:as_json) ? v.as_json : v) }
elsif is_swagger_2_0? && key.to_s.eql?('$ref') && (value.to_s !~ %r{^#/})
result[key] = "#/definitions/#{value}"
else
result[key] = value
end
end
return result if !name
{name => result}
end
|
#data ⇒ Object
248
249
250
|
# File 'lib/swagger/blocks.rb', line 248
def data
@data ||= {}
end
|
#is_swagger_1_2? ⇒ Boolean
271
272
273
|
# File 'lib/swagger/blocks.rb', line 271
def is_swagger_1_2?
version == '1.2'
end
|
#is_swagger_2_0? ⇒ Boolean
275
276
277
|
# File 'lib/swagger/blocks.rb', line 275
def is_swagger_2_0?
version == '2.0'
end
|
#key(key, value) ⇒ Object
256
257
258
|
# File 'lib/swagger/blocks.rb', line 256
def key(key, value)
self.data[key] = value
end
|
#keys(data) ⇒ Object
252
253
254
|
# File 'lib/swagger/blocks.rb', line 252
def keys(data)
self.data.merge!(data) if data
end
|