oas_parser 0.19.0 → 0.20.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 +4 -4
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +9 -5
- data/lib/oas_parser/abstract_attribute.rb +5 -1
- data/lib/oas_parser/property.rb +8 -0
- data/lib/oas_parser/version.rb +1 -1
- data/oas_parser.gemspec +1 -0
- metadata +18 -5
- data/lib/oas_parser/CHANGELOG.md +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76538bff6c3f4e9fd3ea31b6c2d365a55f7ae1db7a71f5d22cf6e19a2aa0456b
|
4
|
+
data.tar.gz: '0855e16c2b41697b079dfab75a1523a64ef5491d1f2f0a071ad43c810465dfb1'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccf0cccc79a10d749e18646a7dd0b64889209f60f2edc67647bd6706e604d8373955867e3d198842f6fb8dc50b0131656c3f0f17e02a62674a1223592a808bc7
|
7
|
+
data.tar.gz: 81f6f36dff3902db4fcfaef359b0f18c592cd7608c52f998ac4ec87a9edd8cedd608334e75e6800418da6a4fed09867d9ed7bc79b2732f77185f11327aa2bf0b
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
## 0.20.0
|
2
|
+
|
3
|
+
- 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)
|
4
|
+
|
5
|
+
## 0.19.0
|
6
|
+
|
7
|
+
- Parser now handles circular/self reference by returning the $ref as is instead of expanding it indefinitely. (Qihuan Piao)
|
data/Gemfile.lock
CHANGED
@@ -6,19 +6,21 @@ PATH
|
|
6
6
|
addressable (~> 2.3)
|
7
7
|
builder (~> 3.2.3)
|
8
8
|
deep_merge (~> 1.2.1)
|
9
|
+
hash-deep-merge
|
9
10
|
mustermann-contrib (~> 1.0.3s)
|
10
11
|
nokogiri
|
11
12
|
|
12
13
|
GEM
|
13
14
|
remote: https://rubygems.org/
|
14
15
|
specs:
|
15
|
-
activesupport (
|
16
|
+
activesupport (6.0.0)
|
16
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
17
18
|
i18n (>= 0.7, < 2)
|
18
19
|
minitest (~> 5.1)
|
19
20
|
tzinfo (~> 1.1)
|
20
|
-
|
21
|
-
|
21
|
+
zeitwerk (~> 2.1, >= 2.1.8)
|
22
|
+
addressable (2.7.0)
|
23
|
+
public_suffix (>= 2.0.2, < 5.0)
|
22
24
|
builder (3.2.3)
|
23
25
|
coderay (1.1.2)
|
24
26
|
concurrent-ruby (1.1.5)
|
@@ -42,6 +44,7 @@ GEM
|
|
42
44
|
guard-compat (~> 1.1)
|
43
45
|
rspec (>= 2.99.0, < 4.0)
|
44
46
|
hansi (0.2.0)
|
47
|
+
hash-deep-merge (0.1.1)
|
45
48
|
i18n (1.6.0)
|
46
49
|
concurrent-ruby (~> 1.0)
|
47
50
|
json (2.1.0)
|
@@ -58,7 +61,7 @@ GEM
|
|
58
61
|
hansi (~> 0.2.0)
|
59
62
|
mustermann (= 1.0.3)
|
60
63
|
nenv (0.3.0)
|
61
|
-
nokogiri (1.10.
|
64
|
+
nokogiri (1.10.4)
|
62
65
|
mini_portile2 (~> 2.4.0)
|
63
66
|
notiffany (0.1.1)
|
64
67
|
nenv (~> 0.1)
|
@@ -66,7 +69,7 @@ GEM
|
|
66
69
|
pry (0.11.3)
|
67
70
|
coderay (~> 1.1.0)
|
68
71
|
method_source (~> 0.9.0)
|
69
|
-
public_suffix (
|
72
|
+
public_suffix (4.0.1)
|
70
73
|
rake (10.5.0)
|
71
74
|
rb-fsevent (0.10.3)
|
72
75
|
rb-inotify (0.9.10)
|
@@ -97,6 +100,7 @@ GEM
|
|
97
100
|
thread_safe (0.3.6)
|
98
101
|
tzinfo (1.2.5)
|
99
102
|
thread_safe (~> 0.1)
|
103
|
+
zeitwerk (2.1.9)
|
100
104
|
|
101
105
|
PLATFORMS
|
102
106
|
ruby
|
@@ -20,6 +20,10 @@ module OasParser
|
|
20
20
|
raw['enum'] || (schema ? schema['enum'] : nil)
|
21
21
|
end
|
22
22
|
|
23
|
+
def allOf?
|
24
|
+
raw['allOf'] ? true : false
|
25
|
+
end
|
26
|
+
|
23
27
|
def oneOf?
|
24
28
|
raw['oneOf'] ? true : false
|
25
29
|
end
|
@@ -44,7 +48,7 @@ module OasParser
|
|
44
48
|
end
|
45
49
|
|
46
50
|
def properties
|
47
|
-
return convert_property_schema_to_properties(raw) if oneOf?
|
51
|
+
return convert_property_schema_to_properties(raw) if (oneOf? || allOf?)
|
48
52
|
return nil unless collection?
|
49
53
|
return [] if empty?
|
50
54
|
return convert_property_schema_to_properties(raw['properties']) if object?
|
data/lib/oas_parser/property.rb
CHANGED
@@ -20,6 +20,14 @@ module OasParser
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def convert_property_schema_to_properties(schema)
|
23
|
+
if schema['allOf']
|
24
|
+
schema['properties'] = {}
|
25
|
+
schema['allOf'].each do |p|
|
26
|
+
schema['properties'].deep_merge!(p['properties'])
|
27
|
+
end
|
28
|
+
schema.delete('allOf')
|
29
|
+
end
|
30
|
+
|
23
31
|
if schema['oneOf']
|
24
32
|
schema['oneOf'].map do |subschema|
|
25
33
|
subschema['properties'] = convert_property_schema_to_properties(subschema)
|
data/lib/oas_parser/version.rb
CHANGED
data/oas_parser.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency "builder", "~> 3.2.3"
|
27
27
|
spec.add_dependency "mustermann-contrib", "~> 1.0.3s"
|
28
28
|
spec.add_dependency "nokogiri"
|
29
|
+
spec.add_dependency "hash-deep-merge"
|
29
30
|
|
30
31
|
spec.add_development_dependency "bundler", "~> 1.16"
|
31
32
|
spec.add_development_dependency "guard-rspec", "~> 4.7.3"
|
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.
|
4
|
+
version: 0.20.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-
|
11
|
+
date: 2019-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: hash-deep-merge
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -202,6 +216,7 @@ files:
|
|
202
216
|
- ".gitignore"
|
203
217
|
- ".rspec"
|
204
218
|
- ".travis.yml"
|
219
|
+
- CHANGELOG.md
|
205
220
|
- CODE_OF_CONDUCT.md
|
206
221
|
- Gemfile
|
207
222
|
- Gemfile.lock
|
@@ -212,7 +227,6 @@ files:
|
|
212
227
|
- bin/console
|
213
228
|
- bin/setup
|
214
229
|
- lib/oas_parser.rb
|
215
|
-
- lib/oas_parser/CHANGELOG.md
|
216
230
|
- lib/oas_parser/abstract_attribute.rb
|
217
231
|
- lib/oas_parser/callback.rb
|
218
232
|
- lib/oas_parser/definition.rb
|
@@ -249,8 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
263
|
- !ruby/object:Gem::Version
|
250
264
|
version: '0'
|
251
265
|
requirements: []
|
252
|
-
|
253
|
-
rubygems_version: 2.7.6.2
|
266
|
+
rubygems_version: 3.0.1
|
254
267
|
signing_key:
|
255
268
|
specification_version: 4
|
256
269
|
summary: A parser for Open API specifications
|
data/lib/oas_parser/CHANGELOG.md
DELETED