oas_parser 0.7.0 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e23a282d082e25eaa924c99c5c712d5dea421c10
4
- data.tar.gz: 843d323be359ce6d6f93fb7f131cfb8a0e0a06b9
3
+ metadata.gz: f3c162b9a3ad868ac7bd502154850707c02d1b1c
4
+ data.tar.gz: 7ff14242ea28262097ec1cc3d21adf2ca70d7004
5
5
  SHA512:
6
- metadata.gz: 22fd955e2530e087f31d47a31ce42d13f14b7315d2f75815e8330d2756cd1b53e87cca4c4dbf34a598e8dff3ea0087aebc6b7aa4d38f63f5ec765ef9952af1f0
7
- data.tar.gz: 1de8809dc639360474c0784af4072ae55a4a1155c28d929b4f8298368c4502b7ef4a6daa4b2e6c9631ddada0478593d538e26f5060eaf54245d5b863e3bc2941
6
+ metadata.gz: 87d32af56fe2cd99ed3353b128e143a724f8704948cabf8e1b57697130c24559af55ef045d3ecd36c3cb8cc517e52245bc53c252aadf2ddeceafe6ad16a355ed
7
+ data.tar.gz: 5ba21605bd9d4af9b25369d57ffcc7989985c06a3bd1317338efc53eff0afb68e186054d7d8dfa73cbe37f990a9c65f00fa94be0134422f5066eab5da6a3a7e5
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oas_parser (0.7.0)
4
+ oas_parser (0.8.0)
5
5
  activesupport (~> 5.1.2)
6
6
  addressable (~> 2.3)
7
7
  builder (~> 3.2.3)
@@ -26,7 +26,7 @@ GEM
26
26
  deep_merge (1.2.1)
27
27
  diff-lcs (1.3)
28
28
  docile (1.1.5)
29
- ffi (1.9.18)
29
+ ffi (1.9.21)
30
30
  formatador (0.2.5)
31
31
  guard (2.14.2)
32
32
  formatador (>= 0.2.4)
@@ -90,7 +90,7 @@ GEM
90
90
  simplecov-html (0.10.2)
91
91
  thor (0.20.0)
92
92
  thread_safe (0.3.6)
93
- tzinfo (1.2.4)
93
+ tzinfo (1.2.5)
94
94
  thread_safe (~> 0.1)
95
95
 
96
96
  PLATFORMS
@@ -11,6 +11,7 @@ require 'deep_merge'
11
11
 
12
12
  require_relative 'oas_parser/payload.rb'
13
13
  require_relative 'oas_parser/raw_accessor.rb'
14
+ require_relative 'oas_parser/abstract_attribute.rb'
14
15
 
15
16
  Dir["#{File.dirname(__FILE__)}/oas_parser/**/*.rb"].each do |file|
16
17
  require file
@@ -0,0 +1,48 @@
1
+ module OasParser
2
+ class AbstractAttribute
3
+ include OasParser::RawAccessor
4
+
5
+ def array?
6
+ type == 'array'
7
+ end
8
+
9
+ def object?
10
+ type == 'object'
11
+ end
12
+
13
+ def collection?
14
+ array? || object?
15
+ end
16
+
17
+ def properties
18
+ return convert_property_schema_to_properties(raw['properties']) if object?
19
+ return convert_property_schema_to_properties(items) if array?
20
+ nil
21
+ end
22
+
23
+ def has_xml_options?
24
+ raw['xml'].present?
25
+ end
26
+
27
+ def is_xml_attribute?
28
+ return false unless has_xml_options?
29
+ raw['xml']['attribute'] || false
30
+ end
31
+
32
+ def is_xml_text?
33
+ # See: https://github.com/OAI/OpenAPI-Specification/issues/630#issuecomment-350680346
34
+ return false unless has_xml_options?
35
+ return true if raw['xml']['text'] || false
36
+ raw['xml']['x-text'] || false
37
+ end
38
+
39
+ def has_xml_name?
40
+ return false unless has_xml_options?
41
+ xml_name || false
42
+ end
43
+
44
+ def xml_name
45
+ raw['xml']['name']
46
+ end
47
+ end
48
+ end
@@ -1,6 +1,5 @@
1
1
  module OasParser
2
- class Parameter
3
- include OasParser::RawAccessor
2
+ class Parameter < AbstractAttribute
4
3
  raw_keys :name, :in, :description, :style, :enum, :schema,
5
4
  :minimum, :maximum, :required
6
5
 
@@ -19,18 +18,6 @@ module OasParser
19
18
  raw['format'] || (schema ? schema['format'] : nil)
20
19
  end
21
20
 
22
- def array?
23
- type == 'array'
24
- end
25
-
26
- def object?
27
- type == 'object'
28
- end
29
-
30
- def collection?
31
- array? || object?
32
- end
33
-
34
21
  def items
35
22
  schema['items']
36
23
  end
@@ -43,12 +30,6 @@ module OasParser
43
30
  raw['default'] || (schema ? schema['default'] : nil)
44
31
  end
45
32
 
46
- def properties
47
- return convert_property_schema_to_properties(raw['properties']) if object?
48
- return convert_property_schema_to_properties(items) if array?
49
- nil
50
- end
51
-
52
33
  def convert_property_schema_to_properties(schema)
53
34
  schema.map do |name, definition|
54
35
  OasParser::Property.new(self, raw, name, definition)
@@ -1,6 +1,5 @@
1
1
  module OasParser
2
- class Property
3
- include OasParser::RawAccessor
2
+ class Property < AbstractAttribute
4
3
  raw_keys :name, :description, :type, :format, :enum, :minimum, :maximum,
5
4
  :example, :default, :items
6
5
 
@@ -19,24 +18,6 @@ module OasParser
19
18
  schema['required'].include? name
20
19
  end
21
20
 
22
- def array?
23
- type == 'array'
24
- end
25
-
26
- def object?
27
- type == 'object'
28
- end
29
-
30
- def collection?
31
- array? || object?
32
- end
33
-
34
- def properties
35
- return convert_property_schema_to_properties(raw['properties']) if object?
36
- return convert_property_schema_to_properties(items) if array?
37
- nil
38
- end
39
-
40
21
  def convert_property_schema_to_properties(schema)
41
22
  schema = schema['properties'] if schema['properties']
42
23
  schema.map do |name, definition|
@@ -1,3 +1,3 @@
1
1
  module OasParser
2
- VERSION = '0.7.0'.freeze
2
+ VERSION = '0.8.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oas_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Butler
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2018-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -198,6 +198,7 @@ files:
198
198
  - bin/console
199
199
  - bin/setup
200
200
  - lib/oas_parser.rb
201
+ - lib/oas_parser/abstract_attribute.rb
201
202
  - lib/oas_parser/callback.rb
202
203
  - lib/oas_parser/definition.rb
203
204
  - lib/oas_parser/endpoint.rb