oas_parser 0.20.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
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