swagger-blocks 2.0.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE.md +4 -0
  3. data/lib/swagger/blocks.rb +14 -0
  4. data/lib/swagger/blocks/class_methods.rb +16 -2
  5. data/lib/swagger/blocks/internal_helpers.rb +25 -0
  6. data/lib/swagger/blocks/node.rb +48 -10
  7. data/lib/swagger/blocks/nodes/all_of_node.rb +6 -5
  8. data/lib/swagger/blocks/nodes/callback_destination_node.rb +11 -0
  9. data/lib/swagger/blocks/nodes/callback_method_node.rb +16 -0
  10. data/lib/swagger/blocks/nodes/callback_node.rb +11 -0
  11. data/lib/swagger/blocks/nodes/component_node.rb +50 -0
  12. data/lib/swagger/blocks/nodes/content_node.rb +20 -0
  13. data/lib/swagger/blocks/nodes/example_node.rb +3 -1
  14. data/lib/swagger/blocks/nodes/flow_node.rb +11 -0
  15. data/lib/swagger/blocks/nodes/header_node.rb +4 -0
  16. data/lib/swagger/blocks/nodes/items_node.rb +1 -1
  17. data/lib/swagger/blocks/nodes/link_node.rb +11 -0
  18. data/lib/swagger/blocks/nodes/link_parameter_node.rb +8 -0
  19. data/lib/swagger/blocks/nodes/one_of_node.rb +11 -0
  20. data/lib/swagger/blocks/nodes/operation_node.rb +15 -0
  21. data/lib/swagger/blocks/nodes/parameter_node.rb +5 -0
  22. data/lib/swagger/blocks/nodes/path_node.rb +6 -0
  23. data/lib/swagger/blocks/nodes/property_node.rb +5 -0
  24. data/lib/swagger/blocks/nodes/request_body_node.rb +12 -0
  25. data/lib/swagger/blocks/nodes/response_node.rb +17 -4
  26. data/lib/swagger/blocks/nodes/root_node.rb +16 -2
  27. data/lib/swagger/blocks/nodes/schema_node.rb +9 -0
  28. data/lib/swagger/blocks/nodes/scopes_node.rb +0 -1
  29. data/lib/swagger/blocks/nodes/security_scheme_node.rb +5 -1
  30. data/lib/swagger/blocks/nodes/server_node.rb +12 -0
  31. data/lib/swagger/blocks/nodes/value_node.rb +8 -0
  32. data/lib/swagger/blocks/nodes/variable_node.rb +8 -0
  33. data/lib/swagger/blocks/nodes/vendor_extension_node.rb +9 -0
  34. data/lib/swagger/blocks/root.rb +8 -1
  35. data/lib/swagger/blocks/version.rb +1 -1
  36. data/spec/lib/swagger_v2_blocks_spec.rb +1 -1
  37. data/spec/lib/swagger_v3_api_declaration.json +592 -0
  38. data/spec/lib/swagger_v3_blocks_spec.rb +555 -0
  39. metadata +22 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 404b9602f5da9794e8be26ad7bfb2e843f670e39
4
- data.tar.gz: dbee5a43cd192a43fe752704067b525592cd5708
2
+ SHA256:
3
+ metadata.gz: 32f19fd2faba19b9d8fd4111231781cc850037de8aa3042b7d0b7c35093370d4
4
+ data.tar.gz: 5799cb21a1651e9845d833aae1ee3eb318a475f31d204147e332b0a7c7305251
5
5
  SHA512:
6
- metadata.gz: 3bf6cd4d6fd437f153c0ea1ac24d961392f205e10f03a5a517791f4305fb4010b36a8b8046d3f06ab010c1e653b09e663f0ef92b15a3335148684aef94876d9f
7
- data.tar.gz: a4851231553d499aea5ff4870b37f0f4ae807d962b00cfb9cb62da910e69b21ce15ae58f6a38592be3d7c91d64d879842060b16add4e6cb17a08a69cb92ee269
6
+ metadata.gz: ed7faabe133513535df3165f36d090ef3a8fbc7171d04d0d820c0f673fe118117b5ddbd23790175099224a8c1a56c495ddb15ec7306d2cf038de331ef5b48cff
7
+ data.tar.gz: 2a8ea7db734e7093086f5e8a75d15af7f8208a37c89d172a4f0af7fd12aff91c1c23ca9eaa4a21089d4150092114ae8c21dde7ea004b0629b3497383a73141c3
@@ -0,0 +1,4 @@
1
+ #
2
+ # PLEASE READ THIS BEFORE FILING AN ISSUE:
3
+ # https://github.com/fotinakis/swagger-blocks/#filing-issues
4
+ #
@@ -9,26 +9,40 @@ module Swagger
9
9
 
10
10
  module Nodes
11
11
  autoload :AllOfNode, 'swagger/blocks/nodes/all_of_node'
12
+ autoload :CallbackNode, 'swagger/blocks/nodes/callback_node'
13
+ autoload :CallbackDestinationNode, 'swagger/blocks/nodes/callback_destination_node'
14
+ autoload :CallbackMethodNode, 'swagger/blocks/nodes/callback_method_node'
15
+ autoload :ComponentNode, 'swagger/blocks/nodes/component_node'
12
16
  autoload :ContactNode, 'swagger/blocks/nodes/contact_node'
17
+ autoload :ContentNode, 'swagger/blocks/nodes/content_node'
13
18
  autoload :ExampleNode, 'swagger/blocks/nodes/example_node'
14
19
  autoload :ExternalDocsNode, 'swagger/blocks/nodes/external_docs_node'
20
+ autoload :FlowNode, 'swagger/blocks/nodes/flow_node'
15
21
  autoload :HeaderNode, 'swagger/blocks/nodes/header_node'
16
22
  autoload :InfoNode, 'swagger/blocks/nodes/info_node'
17
23
  autoload :ItemsNode, 'swagger/blocks/nodes/items_node'
18
24
  autoload :LicenseNode, 'swagger/blocks/nodes/license_node'
25
+ autoload :LinkNode, 'swagger/blocks/nodes/link_node'
26
+ autoload :LinkParameterNode, 'swagger/blocks/nodes/link_parameter_node'
27
+ autoload :OneOfNode, 'swagger/blocks/nodes/one_of_node'
19
28
  autoload :OperationNode, 'swagger/blocks/nodes/operation_node'
20
29
  autoload :ParameterNode, 'swagger/blocks/nodes/parameter_node'
21
30
  autoload :PathNode, 'swagger/blocks/nodes/path_node'
22
31
  autoload :PropertiesNode, 'swagger/blocks/nodes/properties_node'
23
32
  autoload :PropertyNode, 'swagger/blocks/nodes/property_node'
33
+ autoload :RequestBodyNode, 'swagger/blocks/nodes/request_body_node'
24
34
  autoload :ResponseNode, 'swagger/blocks/nodes/response_node'
25
35
  autoload :RootNode, 'swagger/blocks/nodes/root_node'
26
36
  autoload :SchemaNode, 'swagger/blocks/nodes/schema_node'
27
37
  autoload :ScopesNode, 'swagger/blocks/nodes/scopes_node'
28
38
  autoload :SecurityRequirementNode, 'swagger/blocks/nodes/security_requirement_node'
29
39
  autoload :SecuritySchemeNode, 'swagger/blocks/nodes/security_scheme_node'
40
+ autoload :ServerNode, 'swagger/blocks/nodes/server_node'
30
41
  autoload :TagNode, 'swagger/blocks/nodes/tag_node'
42
+ autoload :ValueNode, 'swagger/blocks/nodes/value_node'
43
+ autoload :VariableNode, 'swagger/blocks/nodes/variable_node'
31
44
  autoload :XmlNode, 'swagger/blocks/nodes/xml_node'
45
+ autoload :VendorExtensionNode, 'swagger/blocks/nodes/vendor_extension_node'
32
46
  end
33
47
  end
34
48
  end
@@ -9,6 +9,14 @@ module Swagger
9
9
  @swagger_root_node ||= Swagger::Blocks::Nodes::RootNode.call(inline_keys: inline_keys, &block)
10
10
  end
11
11
 
12
+ def version
13
+ if defined?(@swagger_root_node) && @swagger_root_node.data[:info] && @swagger_root_node.data[:info].version == '3.0.0'
14
+ '3.0.0'
15
+ else
16
+ '2.0'
17
+ end
18
+ end
19
+
12
20
  # v2.0: Defines a Swagger Path Item object
13
21
  # https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#path-item-object
14
22
  def swagger_path(path, &block)
@@ -25,7 +33,7 @@ module Swagger
25
33
  path_node.instance_eval(&block)
26
34
  else
27
35
  # First time we've seen this path
28
- @swagger_path_node_map[path] = Swagger::Blocks::Nodes::PathNode.call(version: '2.0', &block)
36
+ @swagger_path_node_map[path] = Swagger::Blocks::Nodes::PathNode.call(version: version, &block)
29
37
  end
30
38
  end
31
39
 
@@ -41,10 +49,14 @@ module Swagger
41
49
  schema_node.instance_eval(&block)
42
50
  else
43
51
  # First time we've seen this schema_node
44
- @swagger_schema_node_map[name] = Swagger::Blocks::Nodes::SchemaNode.call(version: '2.0', inline_keys: inline_keys, &block)
52
+ @swagger_schema_node_map[name] = Swagger::Blocks::Nodes::SchemaNode.call(version: version, inline_keys: inline_keys, &block)
45
53
  end
46
54
  end
47
55
 
56
+ def swagger_component(inline_keys = nil, &block)
57
+ @swagger_components_node ||= Swagger::Blocks::Nodes::ComponentNode.call(version: '3.0.0', inline_keys: inline_keys, &block)
58
+ end
59
+
48
60
  def _swagger_nodes
49
61
  # Avoid initialization warnings.
50
62
  @swagger_root_node ||= nil
@@ -52,12 +64,14 @@ module Swagger
52
64
  @swagger_schema_node_map ||= nil
53
65
  @swagger_api_root_node_map ||= {}
54
66
  @swagger_models_node ||= nil
67
+ @swagger_components_node ||= nil
55
68
 
56
69
  data = {root_node: @swagger_root_node}
57
70
  data[:path_node_map] = @swagger_path_node_map
58
71
  data[:schema_node_map] = @swagger_schema_node_map
59
72
  data[:api_node_map] = @swagger_api_root_node_map
60
73
  data[:models_node] = @swagger_models_node
74
+ data[:component_node] = @swagger_components_node
61
75
  data
62
76
  end
63
77
  end
@@ -10,6 +10,8 @@ module Swagger
10
10
 
11
11
  path_node_map = {}
12
12
  schema_node_map = {}
13
+ component_node = nil
14
+
13
15
  swaggered_classes.each do |swaggered_class|
14
16
  next unless swaggered_class.respond_to?(:_swagger_nodes, true)
15
17
  swagger_nodes = swaggered_class.send(:_swagger_nodes)
@@ -23,11 +25,29 @@ module Swagger
23
25
  if swagger_nodes[:schema_node_map]
24
26
  schema_node_map.merge!(swagger_nodes[:schema_node_map])
25
27
  end
28
+ if swagger_nodes[:component_node]
29
+ if component_node
30
+ merge_components(component_node, swagger_nodes, :examples)
31
+ merge_components(component_node, swagger_nodes, :links)
32
+ merge_components(component_node, swagger_nodes, :parameters)
33
+ merge_components(component_node, swagger_nodes, :requestBodies)
34
+ merge_components(component_node, swagger_nodes, :responses)
35
+ merge_components(component_node, swagger_nodes, :schemas)
36
+ merge_components(component_node, swagger_nodes, :securitySchemes)
37
+ else
38
+ component_node = swagger_nodes[:component_node]
39
+ end
40
+ end
26
41
  end
42
+
27
43
  data = {root_node: self.limit_root_node(root_nodes)}
44
+
28
45
  if data[:root_node].is_swagger_2_0?
29
46
  data[:path_nodes] = path_node_map
30
47
  data[:schema_nodes] = schema_node_map
48
+ elsif data[:root_node].is_openapi_3_0?
49
+ data[:path_nodes] = path_node_map
50
+ data[:component_node] = component_node
31
51
  else
32
52
  data[:api_node_map] = api_node_map
33
53
  data[:models_nodes] = models_nodes
@@ -35,6 +55,11 @@ module Swagger
35
55
  data
36
56
  end
37
57
 
58
+ def self.merge_components(component_node, swagger_nodes, key)
59
+ component_node.data[key] ||= {}
60
+ component_node.data[key].merge!(swagger_nodes[:component_node].data[key]) if swagger_nodes[:component_node].data[key]
61
+ end
62
+
38
63
  # Make sure there is exactly one root_node and return it.
39
64
  # TODO should this merge the contents of the root nodes instead?
40
65
  def self.limit_root_node(root_nodes)
@@ -4,6 +4,8 @@ module Swagger
4
4
  class Node
5
5
  attr_accessor :name
6
6
  attr_writer :version
7
+ VERSION_2 = '2.0'
8
+ VERSION_3 = '3.0.0'
7
9
 
8
10
  def self.call(options = {}, &block)
9
11
  # Create a new instance and evaluate the block into it.
@@ -15,20 +17,35 @@ module Swagger
15
17
  instance
16
18
  end
17
19
 
18
- def as_json
19
- result = {}
20
+ def as_json(options = {})
21
+ version = options.fetch(:version, VERSION_2)
20
22
 
23
+ result = {}
21
24
  self.data.each do |key, value|
22
25
  if value.is_a?(Node)
23
- result[key] = value.as_json
26
+ result[key] = value.as_json(version: version)
24
27
  elsif value.is_a?(Array)
25
28
  result[key] = []
26
- value.each { |v| result[key] << (v.respond_to?(:as_json) ? v.as_json : v) }
27
- elsif is_swagger_2_0? && value.is_a?(Hash)
29
+ value.each do |v|
30
+ result[key] << value_as_json(v, version)
31
+ end
32
+ elsif value.is_a?(Hash)
28
33
  result[key] = {}
29
- value.each_pair {|k, v| result[key][k] = (v.respond_to?(:as_json) ? v.as_json : v) }
30
- elsif is_swagger_2_0? && key.to_s.eql?('$ref') && (value.to_s !~ %r{^#/|https?://})
34
+ value.each_pair {|k, v| result[key][k] = value_as_json(v, version) }
35
+ elsif version == VERSION_2 && ref?(key) && !static_ref?(value)
31
36
  result[key] = "#/definitions/#{value}"
37
+ elsif version == VERSION_3 && ref?(key) && self.is_a?(Swagger::Blocks::Nodes::LinkNode) && !static_ref?(value)
38
+ result[key] = "#/components/links/#{value}"
39
+ elsif version == VERSION_3 && ref?(key) && self.is_a?(Swagger::Blocks::Nodes::ExampleNode) && !static_ref?(value)
40
+ result[key] = "#/components/examples/#{value}"
41
+ elsif version == VERSION_3 && ref?(key) && self.is_a?(Swagger::Blocks::Nodes::ParameterNode) && !static_ref?(value)
42
+ result[key] = "#/components/parameters/#{value}"
43
+ elsif version == VERSION_3 && ref?(key) && self.is_a?(Swagger::Blocks::Nodes::RequestBodyNode) && !static_ref?(value)
44
+ result[key] = "#/components/requestBodies/#{value}"
45
+ elsif version == VERSION_3 && ref?(key) && self.is_a?(Swagger::Blocks::Nodes::ResponseNode) && !static_ref?(value)
46
+ result[key] = "#/components/responses/#{value}"
47
+ elsif version == VERSION_3 && ref?(key) && !static_ref?(value)
48
+ result[key] = "#/components/schemas/#{value}"
32
49
  else
33
50
  result[key] = value
34
51
  end
@@ -38,6 +55,22 @@ module Swagger
38
55
  {name => result}
39
56
  end
40
57
 
58
+ def ref?(key)
59
+ key.to_s.eql?('$ref')
60
+ end
61
+
62
+ def static_ref?(value)
63
+ value.to_s =~ %r{^#/|https?://}
64
+ end
65
+
66
+ def value_as_json(value, version)
67
+ if value.respond_to?(:as_json)
68
+ value.as_json(version: version)
69
+ else
70
+ value
71
+ end
72
+ end
73
+
41
74
  def data
42
75
  @data ||= {}
43
76
  end
@@ -52,12 +85,17 @@ module Swagger
52
85
 
53
86
  def version
54
87
  return @version if instance_variable_defined?('@version') && @version
55
- return '2.0' if data.has_key?(:swagger) && data[:swagger] == '2.0'
56
- raise DeclarationError, "You must specify swagger '2.0'"
88
+ return VERSION_2 if data.has_key?(:swagger) && data[:swagger] == VERSION_2
89
+ return VERSION_3 if data.has_key?(:openapi) && data[:openapi] == VERSION_3
90
+ raise DeclarationError, "You must specify swagger '#{VERSION_2}' or openapi '#{VERSION_3}'"
57
91
  end
58
92
 
59
93
  def is_swagger_2_0?
60
- version == '2.0'
94
+ version == VERSION_2
95
+ end
96
+
97
+ def is_openapi_3_0?
98
+ version == VERSION_3
61
99
  end
62
100
  end
63
101
  end
@@ -2,19 +2,20 @@ module Swagger
2
2
  module Blocks
3
3
  module Nodes
4
4
  class AllOfNode < Node
5
- def as_json
5
+ def as_json(options = {})
6
+ version = options.fetch(:version, '2.0')
6
7
  result = []
7
8
 
8
9
  self.data.each do |value|
9
10
  if value.is_a?(Node)
10
- result << value.as_json
11
+ result << value.as_json(version: version)
11
12
  elsif value.is_a?(Array)
12
13
  r = []
13
- value.each { |v| r << (v.respond_to?(:as_json) ? v.as_json : v) }
14
+ value.each { |v| r << value_as_json(v, version) }
14
15
  result << r
15
- elsif is_swagger_2_0? && value.is_a?(Hash)
16
+ elsif (is_swagger_2_0? || is_openapi_3_0?) && value.is_a?(Hash)
16
17
  r = {}
17
- value.each_pair {|k, v| r[k] = (v.respond_to?(:as_json) ? v.as_json : v) }
18
+ value.each_pair {|k, v| r[k] = value_as_json(v, version) }
18
19
  result << r
19
20
  else
20
21
  result = value
@@ -0,0 +1,11 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class CallbackDestinationNode < Node
5
+ def method(method_name, inline_keys = nil, &block)
6
+ self.data[method_name] = Swagger::Blocks::Nodes::CallbackMethodNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class CallbackMethodNode < Node
5
+ def request_body(inline_keys = nil, &block)
6
+ self.data[:requestBody] = Swagger::Blocks::Nodes::RequestBodyNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
8
+
9
+ def response(resp, inline_keys = nil, &block)
10
+ self.data[:responses] ||= {}
11
+ self.data[:responses][resp] = Swagger::Blocks::Nodes::ResponseNode.call(version: version, inline_keys: inline_keys, &block)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class CallbackNode < Node
5
+ def destination(address, inline_keys = nil, &block)
6
+ self.data[address] = Swagger::Blocks::Nodes::CallbackDestinationNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class ComponentNode < Node
5
+ def schema(name, inline_keys = nil, &block)
6
+ self.data[:schemas] ||= {}
7
+ schema_node = self.data[:schemas][name]
8
+
9
+ if schema_node
10
+ # Merge this schema_node declaration into the previous one
11
+ schema_node.instance_eval(&block)
12
+ else
13
+ # First time we've seen this schema_node
14
+ self.data[:schemas][name] = Swagger::Blocks::Nodes::SchemaNode.call(version: '3.0.0', inline_keys: inline_keys, &block)
15
+ end
16
+ end
17
+
18
+ def link(name, inline_keys = nil, &block)
19
+ self.data[:links] ||= {}
20
+ self.data[:links][name] = Swagger::Blocks::Nodes::LinkNode.call(version: version, inline_keys: inline_keys, &block)
21
+ end
22
+
23
+ def example(name, inline_keys = nil, &block)
24
+ self.data[:examples] ||= {}
25
+ self.data[:examples][name] = Swagger::Blocks::Nodes::ExampleNode.call(version: version, inline_keys: inline_keys, &block)
26
+ end
27
+
28
+ def security_scheme(name, inline_keys = nil, &block)
29
+ self.data[:securitySchemes] ||= {}
30
+ self.data[:securitySchemes][name] = Swagger::Blocks::Nodes::SecuritySchemeNode.call(version: version, inline_keys: inline_keys, &block)
31
+ end
32
+
33
+ def parameter(name, inline_keys = nil, &block)
34
+ self.data[:parameters] ||= {}
35
+ self.data[:parameters][name] = Swagger::Blocks::Nodes::ParameterNode.call(version: version, inline_keys: inline_keys, &block)
36
+ end
37
+
38
+ def request_body(name, inline_keys = nil, &block)
39
+ self.data[:requestBodies] ||= {}
40
+ self.data[:requestBodies][name] = Swagger::Blocks::Nodes::RequestBodyNode.call(version: version, inline_keys: inline_keys, &block)
41
+ end
42
+
43
+ def response(name, inline_keys = nil, &block)
44
+ self.data[:responses] ||= {}
45
+ self.data[:responses][name] = Swagger::Blocks::Nodes::ResponseNode.call(version: version, inline_keys: inline_keys, &block)
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,20 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class ContentNode < Node
5
+ def schema(inline_keys = nil, &block)
6
+ self.data[:schema] = Swagger::Blocks::Nodes::SchemaNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
8
+
9
+ def example(name = nil, inline_keys = nil, &block)
10
+ if name.nil?
11
+ self.data[:example] = Swagger::Blocks::Nodes::ExampleNode.call(version: version, inline_keys: inline_keys, &block)
12
+ else
13
+ self.data[:examples] ||= {}
14
+ self.data[:examples][name] = Swagger::Blocks::Nodes::ExampleNode.call(version: version, inline_keys: inline_keys, &block)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,8 +1,10 @@
1
1
  module Swagger
2
2
  module Blocks
3
3
  module Nodes
4
- # v2.0:
5
4
  class ExampleNode < Node
5
+ def value(inline_keys = nil, &block)
6
+ self.data[:value] = Swagger::Blocks::Nodes::ValueNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
6
8
  end
7
9
  end
8
10
  end
@@ -0,0 +1,11 @@
1
+ module Swagger
2
+ module Blocks
3
+ module Nodes
4
+ class FlowNode < Node
5
+ def scopes(inline_keys = nil, &block)
6
+ self.data[:scopes] = Swagger::Blocks::Nodes::ScopesNode.call(version: version, inline_keys: inline_keys, &block)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -6,6 +6,10 @@ module Swagger
6
6
  def items(inline_keys = nil, &block)
7
7
  self.data[:items] = Swagger::Blocks::Nodes::ItemsNode.call(version: version, inline_keys: inline_keys, &block)
8
8
  end
9
+
10
+ def schema(inline_keys = nil, &block)
11
+ self.data[:schema] = Swagger::Blocks::Nodes::SchemaNode.call(version: version, inline_keys: inline_keys, &block)
12
+ end
9
13
  end
10
14
  end
11
15
  end
@@ -8,7 +8,7 @@ module Swagger
8
8
  self.data[:properties].version = version
9
9
  self.data[:properties].property(name, inline_keys, &block)
10
10
  end
11
-
11
+
12
12
  def items(inline_keys = nil, &block)
13
13
  self.data[:items] = Swagger::Blocks::Nodes::ItemsNode.call(version: version, inline_keys: inline_keys, &block)
14
14
  end