openapi_parser 0.2.3 → 0.2.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db2325855cec3fb7ebe98a4e40ee654a16f90fe90120b9f52997165b9ab8bc00
|
4
|
+
data.tar.gz: f2887d474e4e9faba6217a6ee60ac4ad4b88f86b74658c090c5f041537979097
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a4f47f5cdf92e64a93ea49856cdd4ff213522ebc7c1f72a3e58986ec61711ac99bbce1968a6e38979e2c825acd9d2ac55db4a1a7146b24827407a32bf1e3f55
|
7
|
+
data.tar.gz: 6076253c378d491e9ce7b27829415fe1e85d3d25b85a9b485f8ddf62bb7413631710c91c5e480482bcedcab07d32bb97288f4a350a01c431cd82daca74f2bb78
|
@@ -43,6 +43,17 @@ module OpenAPIParser
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
+
class NotOneOf < OpenAPIError
|
47
|
+
def initialize(value, reference)
|
48
|
+
super(reference)
|
49
|
+
@value = value
|
50
|
+
end
|
51
|
+
|
52
|
+
def message
|
53
|
+
"#{@value} isn't one of in #{@reference}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
46
57
|
class NotAnyOf < OpenAPIError
|
47
58
|
def initialize(value, reference)
|
48
59
|
super(reference)
|
@@ -9,6 +9,7 @@ require_relative 'schema_validators/object_validator'
|
|
9
9
|
require_relative 'schema_validators/array_validator'
|
10
10
|
require_relative 'schema_validators/any_of_validator'
|
11
11
|
require_relative 'schema_validators/all_of_validator'
|
12
|
+
require_relative 'schema_validators/one_of_validator'
|
12
13
|
require_relative 'schema_validators/nil_validator'
|
13
14
|
|
14
15
|
class OpenAPIParser::SchemaValidator
|
@@ -90,6 +91,7 @@ class OpenAPIParser::SchemaValidator
|
|
90
91
|
def validator(value, schema)
|
91
92
|
return any_of_validator if schema.any_of
|
92
93
|
return all_of_validator if schema.all_of
|
94
|
+
return one_of_validator if schema.one_of
|
93
95
|
return nil_validator if value.nil?
|
94
96
|
|
95
97
|
case schema.type
|
@@ -142,6 +144,10 @@ class OpenAPIParser::SchemaValidator
|
|
142
144
|
@all_of_validator ||= OpenAPIParser::SchemaValidator::AllOfValidator.new(self, @coerce_value)
|
143
145
|
end
|
144
146
|
|
147
|
+
def one_of_validator
|
148
|
+
@one_of_validator ||= OpenAPIParser::SchemaValidator::OneOfValidator.new(self, @coerce_value)
|
149
|
+
end
|
150
|
+
|
145
151
|
def nil_validator
|
146
152
|
@nil_validator ||= OpenAPIParser::SchemaValidator::NilValidator.new(self, @coerce_value)
|
147
153
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class OpenAPIParser::SchemaValidator
|
2
|
+
class OneOfValidator < Base
|
3
|
+
# @param [Object] value
|
4
|
+
# @param [OpenAPIParser::Schemas::Schema] schema
|
5
|
+
def coerce_and_validate(value, schema)
|
6
|
+
# if multiple schemas are satisfied, it's not valid
|
7
|
+
result = schema.one_of.one? do |s|
|
8
|
+
_coerced, err = validatable.validate_schema(value, s)
|
9
|
+
err.nil?
|
10
|
+
end
|
11
|
+
if result
|
12
|
+
[value, nil]
|
13
|
+
else
|
14
|
+
[nil, OpenAPIParser::NotOneOf.new(value, schema.object_reference)]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openapi_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ota42y
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -180,6 +180,7 @@ files:
|
|
180
180
|
- lib/openapi_parser/schema_validators/integer_validator.rb
|
181
181
|
- lib/openapi_parser/schema_validators/nil_validator.rb
|
182
182
|
- lib/openapi_parser/schema_validators/object_validator.rb
|
183
|
+
- lib/openapi_parser/schema_validators/one_of_validator.rb
|
183
184
|
- lib/openapi_parser/schema_validators/options.rb
|
184
185
|
- lib/openapi_parser/schema_validators/string_validator.rb
|
185
186
|
- lib/openapi_parser/schemas.rb
|
@@ -219,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
220
|
- !ruby/object:Gem::Version
|
220
221
|
version: '0'
|
221
222
|
requirements: []
|
222
|
-
rubygems_version: 3.0.
|
223
|
+
rubygems_version: 3.0.1
|
223
224
|
signing_key:
|
224
225
|
specification_version: 4
|
225
226
|
summary: OpenAPI3 parser
|