committee 2.5.1 → 3.0.0.alpha
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/committee.rb +16 -5
- data/lib/committee/bin/committee_stub.rb +4 -0
- data/lib/committee/drivers.rb +12 -29
- data/lib/committee/drivers/hyper_schema.rb +9 -0
- data/lib/committee/drivers/open_api_2.rb +9 -20
- data/lib/committee/drivers/open_api_3.rb +70 -0
- data/lib/committee/errors.rb +3 -0
- data/lib/committee/middleware/base.rb +20 -62
- data/lib/committee/middleware/request_validation.rb +5 -62
- data/lib/committee/middleware/response_validation.rb +5 -19
- data/lib/committee/middleware/stub.rb +5 -1
- data/lib/committee/parameter_coercer.rb +1 -0
- data/lib/committee/request_unpacker.rb +2 -5
- data/lib/committee/schema_validator/hyper_schema.rb +92 -0
- data/lib/committee/{request_validator.rb → schema_validator/hyper_schema/request_validator.rb} +1 -1
- data/lib/committee/{response_generator.rb → schema_validator/hyper_schema/response_generator.rb} +1 -1
- data/lib/committee/{response_validator.rb → schema_validator/hyper_schema/response_validator.rb} +6 -6
- data/lib/committee/{router.rb → schema_validator/hyper_schema/router.rb} +10 -4
- data/lib/committee/{string_params_coercer.rb → schema_validator/hyper_schema/string_params_coercer.rb} +1 -1
- data/lib/committee/schema_validator/open_api_3.rb +67 -0
- data/lib/committee/schema_validator/open_api_3/operation_wrapper.rb +98 -0
- data/lib/committee/schema_validator/open_api_3/request_validator.rb +17 -0
- data/lib/committee/schema_validator/open_api_3/response_validator.rb +35 -0
- data/lib/committee/schema_validator/open_api_3/router.rb +26 -0
- data/lib/committee/schema_validator/option.rb +31 -0
- data/lib/committee/test/methods.rb +14 -117
- data/test/bin/committee_stub_test.rb +6 -0
- data/test/drivers/open_api_2_test.rb +0 -81
- data/test/drivers/open_api_3_test.rb +81 -0
- data/test/drivers_test.rb +2 -42
- data/test/middleware/base_test.rb +42 -21
- data/test/middleware/request_validation_open_api_3_test.rb +499 -0
- data/test/middleware/request_validation_test.rb +18 -0
- data/test/middleware/response_validation_open_api_3_test.rb +96 -0
- data/test/middleware/response_validation_test.rb +7 -30
- data/test/middleware/stub_test.rb +9 -0
- data/test/request_unpacker_test.rb +55 -21
- data/test/{request_validator_test.rb → schema_validator/hyper_schema/request_validator_test.rb} +4 -4
- data/test/{response_generator_test.rb → schema_validator/hyper_schema/response_generator_test.rb} +11 -11
- data/test/{response_validator_test.rb → schema_validator/hyper_schema/response_validator_test.rb} +3 -3
- data/test/{router_test.rb → schema_validator/hyper_schema/router_test.rb} +8 -10
- data/test/{string_params_coercer_test.rb → schema_validator/hyper_schema/string_params_coercer_test.rb} +3 -3
- data/test/schema_validator/open_api_3/operation_wrapper_test.rb +132 -0
- data/test/schema_validator/open_api_3/request_validator_test.rb +151 -0
- data/test/schema_validator/open_api_3/response_validator_test.rb +55 -0
- data/test/test/methods_new_version_test.rb +11 -20
- data/test/test/methods_test.rb +51 -55
- data/test/test_helper.rb +22 -8
- metadata +46 -18
data/test/test_helper.rb
CHANGED
@@ -21,6 +21,7 @@ require "minitest/spec"
|
|
21
21
|
require "minitest/autorun"
|
22
22
|
require "rack/test"
|
23
23
|
require "rr"
|
24
|
+
require "pry"
|
24
25
|
|
25
26
|
require_relative "../lib/committee"
|
26
27
|
|
@@ -47,27 +48,40 @@ ValidPet = {
|
|
47
48
|
}.freeze
|
48
49
|
|
49
50
|
def hyper_schema
|
50
|
-
@hyper_schema ||=
|
51
|
+
@hyper_schema ||= begin
|
52
|
+
driver = Committee::Drivers::HyperSchema.new
|
53
|
+
driver.parse(hyper_schema_data)
|
54
|
+
end
|
51
55
|
end
|
52
56
|
|
53
57
|
def open_api_2_schema
|
54
|
-
@open_api_2_schema ||=
|
58
|
+
@open_api_2_schema ||= begin
|
59
|
+
driver = Committee::Drivers::OpenAPI2.new
|
60
|
+
driver.parse(open_api_2_data)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def open_api_3_schema
|
65
|
+
@open_api_3_schema ||= begin
|
66
|
+
driver = Committee::Drivers::OpenAPI3.new
|
67
|
+
driver.parse(open_api_3_data)
|
68
|
+
end
|
55
69
|
end
|
56
70
|
|
57
71
|
# Don't cache this because we'll often manipulate the created hash in tests.
|
58
72
|
def hyper_schema_data
|
59
|
-
JSON.parse(File.read(
|
73
|
+
JSON.parse(File.read("./test/data/hyperschema/paas.json"))
|
60
74
|
end
|
61
75
|
|
62
76
|
# Don't cache this because we'll often manipulate the created hash in tests.
|
63
77
|
def open_api_2_data
|
64
|
-
JSON.parse(File.read(
|
78
|
+
JSON.parse(File.read("./test/data/openapi2/petstore-expanded.json"))
|
65
79
|
end
|
66
80
|
|
67
|
-
def
|
68
|
-
|
81
|
+
def open_api_3_data
|
82
|
+
OpenAPIParser.parse(YAML.load_file(open_api_3_data_path))
|
69
83
|
end
|
70
84
|
|
71
|
-
def
|
72
|
-
"./test/data/
|
85
|
+
def open_api_3_data_path
|
86
|
+
"./test/data/openapi3/normal.yml"
|
73
87
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: committee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandur
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json_schema
|
@@ -37,14 +37,28 @@ dependencies:
|
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '1.5'
|
41
41
|
type: :runtime
|
42
42
|
prerelease: false
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '1.5'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: openapi_parser
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.5
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.1.5
|
48
62
|
- !ruby/object:Gem::Dependency
|
49
63
|
name: minitest
|
50
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,6 +172,7 @@ files:
|
|
158
172
|
- lib/committee/drivers.rb
|
159
173
|
- lib/committee/drivers/hyper_schema.rb
|
160
174
|
- lib/committee/drivers/open_api_2.rb
|
175
|
+
- lib/committee/drivers/open_api_3.rb
|
161
176
|
- lib/committee/errors.rb
|
162
177
|
- lib/committee/middleware/base.rb
|
163
178
|
- lib/committee/middleware/request_validation.rb
|
@@ -165,11 +180,18 @@ files:
|
|
165
180
|
- lib/committee/middleware/stub.rb
|
166
181
|
- lib/committee/parameter_coercer.rb
|
167
182
|
- lib/committee/request_unpacker.rb
|
168
|
-
- lib/committee/
|
169
|
-
- lib/committee/
|
170
|
-
- lib/committee/
|
171
|
-
- lib/committee/
|
172
|
-
- lib/committee/
|
183
|
+
- lib/committee/schema_validator/hyper_schema.rb
|
184
|
+
- lib/committee/schema_validator/hyper_schema/request_validator.rb
|
185
|
+
- lib/committee/schema_validator/hyper_schema/response_generator.rb
|
186
|
+
- lib/committee/schema_validator/hyper_schema/response_validator.rb
|
187
|
+
- lib/committee/schema_validator/hyper_schema/router.rb
|
188
|
+
- lib/committee/schema_validator/hyper_schema/string_params_coercer.rb
|
189
|
+
- lib/committee/schema_validator/open_api_3.rb
|
190
|
+
- lib/committee/schema_validator/open_api_3/operation_wrapper.rb
|
191
|
+
- lib/committee/schema_validator/open_api_3/request_validator.rb
|
192
|
+
- lib/committee/schema_validator/open_api_3/response_validator.rb
|
193
|
+
- lib/committee/schema_validator/open_api_3/router.rb
|
194
|
+
- lib/committee/schema_validator/option.rb
|
173
195
|
- lib/committee/test/methods.rb
|
174
196
|
- lib/committee/validation_error.rb
|
175
197
|
- test/bin/committee_stub_test.rb
|
@@ -177,18 +199,24 @@ files:
|
|
177
199
|
- test/committee_test.rb
|
178
200
|
- test/drivers/hyper_schema_test.rb
|
179
201
|
- test/drivers/open_api_2_test.rb
|
202
|
+
- test/drivers/open_api_3_test.rb
|
180
203
|
- test/drivers_test.rb
|
181
204
|
- test/middleware/base_test.rb
|
205
|
+
- test/middleware/request_validation_open_api_3_test.rb
|
182
206
|
- test/middleware/request_validation_test.rb
|
207
|
+
- test/middleware/response_validation_open_api_3_test.rb
|
183
208
|
- test/middleware/response_validation_test.rb
|
184
209
|
- test/middleware/stub_test.rb
|
185
210
|
- test/parameter_coercer_test.rb
|
186
211
|
- test/request_unpacker_test.rb
|
187
|
-
- test/request_validator_test.rb
|
188
|
-
- test/response_generator_test.rb
|
189
|
-
- test/response_validator_test.rb
|
190
|
-
- test/router_test.rb
|
191
|
-
- test/string_params_coercer_test.rb
|
212
|
+
- test/schema_validator/hyper_schema/request_validator_test.rb
|
213
|
+
- test/schema_validator/hyper_schema/response_generator_test.rb
|
214
|
+
- test/schema_validator/hyper_schema/response_validator_test.rb
|
215
|
+
- test/schema_validator/hyper_schema/router_test.rb
|
216
|
+
- test/schema_validator/hyper_schema/string_params_coercer_test.rb
|
217
|
+
- test/schema_validator/open_api_3/operation_wrapper_test.rb
|
218
|
+
- test/schema_validator/open_api_3/request_validator_test.rb
|
219
|
+
- test/schema_validator/open_api_3/response_validator_test.rb
|
192
220
|
- test/test/methods_new_version_test.rb
|
193
221
|
- test/test/methods_test.rb
|
194
222
|
- test/test_helper.rb
|
@@ -205,15 +233,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
233
|
requirements:
|
206
234
|
- - ">="
|
207
235
|
- !ruby/object:Gem::Version
|
208
|
-
version: 2.
|
236
|
+
version: 2.3.0
|
209
237
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
210
238
|
requirements:
|
211
|
-
- - "
|
239
|
+
- - ">"
|
212
240
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
241
|
+
version: 1.3.1
|
214
242
|
requirements: []
|
215
243
|
rubyforge_project:
|
216
|
-
rubygems_version: 2.
|
244
|
+
rubygems_version: 2.4.5.1
|
217
245
|
signing_key:
|
218
246
|
specification_version: 4
|
219
247
|
summary: A collection of Rack middleware to support JSON Schema.
|