oas_parser 0.23.0 → 0.24.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: 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