oas_parser 0.10.0 → 0.11.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: af2cf77367859b251828b87876cb093cad24b544
4
- data.tar.gz: 8aa73bebcc87b9936f0609202f6905489ae48246
3
+ metadata.gz: 603bbd2df525a4d19c34e56682551c5a7e4e8461
4
+ data.tar.gz: b9f59dfd1eab36b7674525e146a92e04bc8d2b27
5
5
  SHA512:
6
- metadata.gz: 2e2a64eb1ea08fd0d307beac24d2554c49f334ff843650530cb686217559ad3a503bd738c6cf57ee5e2df10f7bf875930d84c95ff84b2e184210ff728b58e600
7
- data.tar.gz: ad197badfba749af748df81ced2d30b0d1d586d91c04cd2f4990fa5bbe8c8725e0a422589b56d91c3d4bfd6a0ed70f4b17830d044e54c7794c85feafb68c6113
6
+ metadata.gz: b51dd2fada44ae1d4f29e04f603341e209f8ee1b88987d8283456fe7c6bac7745b5a6dd03a98f9679532450dccb9c6b8bdab7577e134a51031fc95b0f72a6721
7
+ data.tar.gz: f94e183e9113c5ecf89b30b0c3d59d3db2a64cd8caf299aac0e2f1ac7048a355714f983670340620bbbc148d5b6c60c02311bcba39f47780a8d28304fcc65fc5
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oas_parser (0.10.0)
4
+ oas_parser (0.11.0)
5
5
  activesupport (~> 5.1.2)
6
6
  addressable (~> 2.3)
7
7
  builder (~> 3.2.3)
@@ -67,5 +67,10 @@ module OasParser
67
67
  def xml_name
68
68
  raw['xml']['name']
69
69
  end
70
+
71
+ def subproperties_are_one_of_many?
72
+ return false unless array?
73
+ items['oneOf'].present?
74
+ end
70
75
  end
71
76
  end
@@ -20,9 +20,22 @@ module OasParser
20
20
  end
21
21
 
22
22
  def convert_property_schema_to_properties(schema)
23
- schema = schema['properties'] if schema['properties']
24
- schema.map do |name, definition|
25
- OasParser::Property.new(self, raw, name, definition)
23
+ if schema['oneOf']
24
+ schema['oneOf'].map do |subschema|
25
+ subschema['properties'] = convert_property_schema_to_properties(subschema)
26
+ subschema['subschema_property'] = true
27
+ subschema
28
+ end
29
+ elsif schema['subschema_property']
30
+ schema = schema['properties'] if schema['properties']
31
+ schema.map do |definition|
32
+ OasParser::Property.new(self, raw, definition.name, definition)
33
+ end
34
+ else
35
+ schema = schema['properties'] if schema['properties']
36
+ schema.map do |key, definition|
37
+ OasParser::Property.new(self, raw, key, definition)
38
+ end
26
39
  end
27
40
  end
28
41
  end
@@ -1,3 +1,3 @@
1
1
  module OasParser
2
- VERSION = '0.10.0'.freeze
2
+ VERSION = '0.11.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.10.0
4
+ version: 0.11.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-03-05 00:00:00.000000000 Z
11
+ date: 2018-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable