committee 2.5.1 → 3.0.0.alpha

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.
Files changed (50) hide show
  1. checksums.yaml +5 -5
  2. data/lib/committee.rb +16 -5
  3. data/lib/committee/bin/committee_stub.rb +4 -0
  4. data/lib/committee/drivers.rb +12 -29
  5. data/lib/committee/drivers/hyper_schema.rb +9 -0
  6. data/lib/committee/drivers/open_api_2.rb +9 -20
  7. data/lib/committee/drivers/open_api_3.rb +70 -0
  8. data/lib/committee/errors.rb +3 -0
  9. data/lib/committee/middleware/base.rb +20 -62
  10. data/lib/committee/middleware/request_validation.rb +5 -62
  11. data/lib/committee/middleware/response_validation.rb +5 -19
  12. data/lib/committee/middleware/stub.rb +5 -1
  13. data/lib/committee/parameter_coercer.rb +1 -0
  14. data/lib/committee/request_unpacker.rb +2 -5
  15. data/lib/committee/schema_validator/hyper_schema.rb +92 -0
  16. data/lib/committee/{request_validator.rb → schema_validator/hyper_schema/request_validator.rb} +1 -1
  17. data/lib/committee/{response_generator.rb → schema_validator/hyper_schema/response_generator.rb} +1 -1
  18. data/lib/committee/{response_validator.rb → schema_validator/hyper_schema/response_validator.rb} +6 -6
  19. data/lib/committee/{router.rb → schema_validator/hyper_schema/router.rb} +10 -4
  20. data/lib/committee/{string_params_coercer.rb → schema_validator/hyper_schema/string_params_coercer.rb} +1 -1
  21. data/lib/committee/schema_validator/open_api_3.rb +67 -0
  22. data/lib/committee/schema_validator/open_api_3/operation_wrapper.rb +98 -0
  23. data/lib/committee/schema_validator/open_api_3/request_validator.rb +17 -0
  24. data/lib/committee/schema_validator/open_api_3/response_validator.rb +35 -0
  25. data/lib/committee/schema_validator/open_api_3/router.rb +26 -0
  26. data/lib/committee/schema_validator/option.rb +31 -0
  27. data/lib/committee/test/methods.rb +14 -117
  28. data/test/bin/committee_stub_test.rb +6 -0
  29. data/test/drivers/open_api_2_test.rb +0 -81
  30. data/test/drivers/open_api_3_test.rb +81 -0
  31. data/test/drivers_test.rb +2 -42
  32. data/test/middleware/base_test.rb +42 -21
  33. data/test/middleware/request_validation_open_api_3_test.rb +499 -0
  34. data/test/middleware/request_validation_test.rb +18 -0
  35. data/test/middleware/response_validation_open_api_3_test.rb +96 -0
  36. data/test/middleware/response_validation_test.rb +7 -30
  37. data/test/middleware/stub_test.rb +9 -0
  38. data/test/request_unpacker_test.rb +55 -21
  39. data/test/{request_validator_test.rb → schema_validator/hyper_schema/request_validator_test.rb} +4 -4
  40. data/test/{response_generator_test.rb → schema_validator/hyper_schema/response_generator_test.rb} +11 -11
  41. data/test/{response_validator_test.rb → schema_validator/hyper_schema/response_validator_test.rb} +3 -3
  42. data/test/{router_test.rb → schema_validator/hyper_schema/router_test.rb} +8 -10
  43. data/test/{string_params_coercer_test.rb → schema_validator/hyper_schema/string_params_coercer_test.rb} +3 -3
  44. data/test/schema_validator/open_api_3/operation_wrapper_test.rb +132 -0
  45. data/test/schema_validator/open_api_3/request_validator_test.rb +151 -0
  46. data/test/schema_validator/open_api_3/response_validator_test.rb +55 -0
  47. data/test/test/methods_new_version_test.rb +11 -20
  48. data/test/test/methods_test.rb +51 -55
  49. data/test/test_helper.rb +22 -8
  50. metadata +46 -18
@@ -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 ||= Committee::Drivers.load_from_file(hyper_schema_schema_path)
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 ||= Committee::Drivers.load_from_data(open_api_2_data)
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(hyper_schema_schema_path))
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(open_api_2_schema_path))
78
+ JSON.parse(File.read("./test/data/openapi2/petstore-expanded.json"))
65
79
  end
66
80
 
67
- def hyper_schema_schema_path
68
- "./test/data/hyperschema/paas.json"
81
+ def open_api_3_data
82
+ OpenAPIParser.parse(YAML.load_file(open_api_3_data_path))
69
83
  end
70
84
 
71
- def open_api_2_schema_path
72
- "./test/data/openapi2/petstore-expanded.json"
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: 2.5.1
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: 2019-01-23 00:00:00.000000000 Z
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: 2.0.6
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: 2.0.6
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/request_validator.rb
169
- - lib/committee/response_generator.rb
170
- - lib/committee/response_validator.rb
171
- - lib/committee/router.rb
172
- - lib/committee/string_params_coercer.rb
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.0.0
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: '0'
241
+ version: 1.3.1
214
242
  requirements: []
215
243
  rubyforge_project:
216
- rubygems_version: 2.7.7
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.