oas_parser 0.20.0 → 0.21.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
  SHA256:
3
- metadata.gz: 76538bff6c3f4e9fd3ea31b6c2d365a55f7ae1db7a71f5d22cf6e19a2aa0456b
4
- data.tar.gz: '0855e16c2b41697b079dfab75a1523a64ef5491d1f2f0a071ad43c810465dfb1'
3
+ metadata.gz: b87fccaab412d43a8da11115041d8fc3170e3f7410d8d4fe3da50223dae7abf1
4
+ data.tar.gz: 41c5f6103025494d905939df9018ffcfee48db0352928d851bc589fc6e06e9f3
5
5
  SHA512:
6
- metadata.gz: ccf0cccc79a10d749e18646a7dd0b64889209f60f2edc67647bd6706e604d8373955867e3d198842f6fb8dc50b0131656c3f0f17e02a62674a1223592a808bc7
7
- data.tar.gz: 81f6f36dff3902db4fcfaef359b0f18c592cd7608c52f998ac4ec87a9edd8cedd608334e75e6800418da6a4fed09867d9ed7bc79b2732f77185f11327aa2bf0b
6
+ metadata.gz: b508516b6340d6a111a303e916907c68f798e2d0ea65fd193a109591d8753b9b595f6d24a8481c05e4296beb303649d2176280741612fb2be6524387689cb69e
7
+ data.tar.gz: e5c6793cf56a29142c6c9629fd1dc4430d63370363c42fdcd847b57ebc000a943544c8b720223294d27c54fef36544c98f91ae900351ab2bb76165468eca5aac
@@ -1,3 +1,7 @@
1
+ ## 0.21.0
2
+
3
+ - oneOf values that contain allOf values at the top level of a request body are now handled correctly
4
+
1
5
  ## 0.20.0
2
6
 
3
7
  - allOf values are now deep-merged in to a single hash before being processed as properties/oneOf. This means that allOf will never be present in your data (just like JSON pointers are auto-resolved)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oas_parser (0.19.0)
4
+ oas_parser (0.21.0)
5
5
  activesupport (>= 4.0.0)
6
6
  addressable (~> 2.3)
7
7
  builder (~> 3.2.3)
@@ -100,7 +100,7 @@ GEM
100
100
  thread_safe (0.3.6)
101
101
  tzinfo (1.2.5)
102
102
  thread_safe (~> 0.1)
103
- zeitwerk (2.1.9)
103
+ zeitwerk (2.1.10)
104
104
 
105
105
  PLATFORMS
106
106
  ruby
@@ -11,17 +11,31 @@ module OasParser
11
11
  end
12
12
 
13
13
  def properties_for_format(format)
14
- schema(format)['properties'].map do |name, definition|
15
- OasParser::Property.new(self, schema(format), name, definition)
14
+ s = schema(format)
15
+ s = handle_all_of(s)
16
+ s['properties'].map do |name, definition|
17
+ OasParser::Property.new(self, s, name, definition)
16
18
  end
17
19
  end
18
20
 
19
21
  def split_properties_for_format(format)
20
22
  split_schemas(format).map do |schema|
23
+ schema = handle_all_of(schema)
21
24
  schema['properties'].map do |name, definition|
22
25
  OasParser::Property.new(self, schema(format), name, definition)
23
26
  end
24
27
  end
25
28
  end
29
+
30
+ def handle_all_of(schema)
31
+ if schema['allOf']
32
+ schema['properties'] = {}
33
+ schema['allOf'].each do |p|
34
+ schema['properties'].deep_merge!(p['properties'])
35
+ end
36
+ schema.delete('allOf')
37
+ end
38
+ schema
39
+ end
26
40
  end
27
41
  end
@@ -1,3 +1,3 @@
1
1
  module OasParser
2
- VERSION = '0.20.0'.freeze
2
+ VERSION = '0.21.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.20.0
4
+ version: 0.21.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: 2019-09-05 00:00:00.000000000 Z
11
+ date: 2019-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -263,7 +263,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
265
  requirements: []
266
- rubygems_version: 3.0.1
266
+ rubyforge_project:
267
+ rubygems_version: 2.7.6.2
267
268
  signing_key:
268
269
  specification_version: 4
269
270
  summary: A parser for Open API specifications