oas_parser 0.23.0 → 0.24.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: b44913e6a3d388f77e72ddb2340b2c8a573417ddbe92e45e8a1b8f97ea1f3de7
4
- data.tar.gz: 929ced8cdf91798199f31eef3837680d8054db93004928943cde3fcf08b7492e
3
+ metadata.gz: 0fd70d73eed5326319f61572f5a89e256553ba1ff5af7855f95db7854d6164ed
4
+ data.tar.gz: 953cff2adbfd8904d867d555a3aec1cd9567148842bcefefaa48a5e63a93000f
5
5
  SHA512:
6
- metadata.gz: af8baaf8f63f92126322dacda77c745bc1036050aa28e6970f1d167d1412483c212a2c7ec6a4023aa192fc542c6874b59e7dd415dd8df1d6c59cacdc6548a3c5
7
- data.tar.gz: fbfa2c0d997531c2736b233783405758d6c3e6f5e3ad131839d5194269e6ed7ce422d7a21f0a9f6e6e0baf197d02d3263a5fbdb4168262d12cd609f667e2902f
6
+ metadata.gz: 28459e9e0a12e418f5b38934734529a95b06612dd7ce23a0bf3ed4f8255dabd6c47426011e3284285f295ff4a4838f9a771c6e1eeec92d36bb71778342c2ab50
7
+ data.tar.gz: ae2e6a3ff725f9b06338cdb694be2782a8b511d0b0f8e885585810b97d14e25cc1dd25a5bb8d51459917c67ea27f4a80c43327e8276caaab92f5e4ef713e43b8
data/Gemfile.lock CHANGED
@@ -1,19 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- oas_parser (0.23.0)
4
+ oas_parser (0.24.0)
5
5
  activesupport (>= 4.0.0)
6
6
  addressable (~> 2.3)
7
7
  builder (~> 3.2.3)
8
8
  deep_merge (~> 1.2.1)
9
9
  hash-deep-merge
10
- mustermann-contrib (~> 1.0.3s)
10
+ mustermann-contrib (~> 1.1.1)
11
11
  nokogiri
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
15
15
  specs:
16
- activesupport (6.0.1)
16
+ activesupport (6.0.2.1)
17
17
  concurrent-ruby (~> 1.0, >= 1.0.2)
18
18
  i18n (>= 0.7, < 2)
19
19
  minitest (~> 5.1)
@@ -45,7 +45,7 @@ GEM
45
45
  rspec (>= 2.99.0, < 4.0)
46
46
  hansi (0.2.0)
47
47
  hash-deep-merge (0.1.1)
48
- i18n (1.7.0)
48
+ i18n (1.8.2)
49
49
  concurrent-ruby (~> 1.0)
50
50
  json (2.1.0)
51
51
  listen (3.1.5)
@@ -55,13 +55,14 @@ GEM
55
55
  lumberjack (1.0.13)
56
56
  method_source (0.9.2)
57
57
  mini_portile2 (2.4.0)
58
- minitest (5.13.0)
59
- mustermann (1.0.3)
60
- mustermann-contrib (1.0.3)
58
+ minitest (5.14.0)
59
+ mustermann (1.1.1)
60
+ ruby2_keywords (~> 0.0.1)
61
+ mustermann-contrib (1.1.1)
61
62
  hansi (~> 0.2.0)
62
- mustermann (= 1.0.3)
63
+ mustermann (= 1.1.1)
63
64
  nenv (0.3.0)
64
- nokogiri (1.10.7)
65
+ nokogiri (1.10.8)
65
66
  mini_portile2 (~> 2.4.0)
66
67
  notiffany (0.1.1)
67
68
  nenv (~> 0.1)
@@ -69,7 +70,7 @@ GEM
69
70
  pry (0.11.3)
70
71
  coderay (~> 1.1.0)
71
72
  method_source (~> 0.9.0)
72
- public_suffix (4.0.1)
73
+ public_suffix (4.0.3)
73
74
  rake (10.5.0)
74
75
  rb-fsevent (0.10.3)
75
76
  rb-inotify (0.9.10)
@@ -89,6 +90,7 @@ GEM
89
90
  diff-lcs (>= 1.2.0, < 2.0)
90
91
  rspec-support (~> 3.8.0)
91
92
  rspec-support (3.8.0)
93
+ ruby2_keywords (0.0.2)
92
94
  ruby_dep (1.5.0)
93
95
  shellany (0.0.1)
94
96
  simplecov (0.15.1)
@@ -98,7 +100,7 @@ GEM
98
100
  simplecov-html (0.10.2)
99
101
  thor (0.20.3)
100
102
  thread_safe (0.3.6)
101
- tzinfo (1.2.5)
103
+ tzinfo (1.2.6)
102
104
  thread_safe (~> 0.1)
103
105
  zeitwerk (2.2.2)
104
106
 
@@ -106,7 +108,7 @@ PLATFORMS
106
108
  ruby
107
109
 
108
110
  DEPENDENCIES
109
- bundler (~> 1.16)
111
+ bundler (~> 2.1)
110
112
  guard-rspec (~> 4.7.3)
111
113
  oas_parser!
112
114
  pry (~> 0.11.3)
@@ -116,4 +118,4 @@ DEPENDENCIES
116
118
  simplecov (~> 0.15.1)
117
119
 
118
120
  BUNDLED WITH
119
- 1.17.3
121
+ 2.1.4
@@ -28,13 +28,34 @@ module OasParser
28
28
  end
29
29
 
30
30
  def handle_all_of(schema)
31
+ newSchema = {}
31
32
  if schema['allOf']
32
33
  schema['allOf'].each do |p|
33
- schema.deep_merge!(p)
34
+ newSchema = deep_safe_merge(newSchema, p)
35
+ if newSchema['allOf']
36
+ newSchema = deep_safe_merge(newSchema, handle_all_of(newSchema))
37
+ newSchema.delete('allOf')
38
+ end
34
39
  end
35
- schema.delete('allOf')
40
+ else
41
+ newSchema = schema
36
42
  end
37
- schema
43
+
44
+ newSchema
38
45
  end
46
+
47
+ def deep_safe_merge(source_hash, new_hash)
48
+ source_hash.merge(new_hash) do |key, old, new|
49
+ if new.respond_to?(:blank) && new.blank?
50
+ old
51
+ elsif (old.kind_of?(Hash) and new.kind_of?(Hash))
52
+ old.deep_merge(new)
53
+ elsif (old.kind_of?(Array) and new.kind_of?(Array))
54
+ old.concat(new).uniq
55
+ else
56
+ new
57
+ end
58
+ end
59
+ end
39
60
  end
40
61
  end
@@ -1,3 +1,3 @@
1
1
  module OasParser
2
- VERSION = '0.23.0'.freeze
2
+ VERSION = '0.24.0'.freeze
3
3
  end
data/oas_parser.gemspec CHANGED
@@ -24,11 +24,11 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "deep_merge", "~> 1.2.1"
25
25
  spec.add_dependency "activesupport", ">= 4.0.0"
26
26
  spec.add_dependency "builder", "~> 3.2.3"
27
- spec.add_dependency "mustermann-contrib", "~> 1.0.3s"
27
+ spec.add_dependency "mustermann-contrib", "~> 1.1.1"
28
28
  spec.add_dependency "nokogiri"
29
29
  spec.add_dependency "hash-deep-merge"
30
30
 
31
- spec.add_development_dependency "bundler", "~> 1.16"
31
+ spec.add_development_dependency "bundler", "~> 2.1"
32
32
  spec.add_development_dependency "guard-rspec", "~> 4.7.3"
33
33
  spec.add_development_dependency "rake", "~> 10.0"
34
34
  spec.add_development_dependency "rspec", "~> 3.0"
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.23.0
4
+ version: 0.24.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-12-13 00:00:00.000000000 Z
11
+ date: 2020-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.0.3s
75
+ version: 1.1.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.0.3s
82
+ version: 1.1.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: nokogiri
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.16'
117
+ version: '2.1'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.16'
124
+ version: '2.1'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: guard-rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -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.3
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