committee 5.1.0 → 5.3.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: d38440a7b31b31d429a47b744f397333489d09dbae1dbf16bcd74dd01124d68d
4
- data.tar.gz: a7d1b5a22c1f415c6eb2bae32b6666df4558c3361f7685c50926499e2e74575e
3
+ metadata.gz: 8ec0b5b55c4e5f1be93511f36d4ae210f7318232ab1aa421bbac14f3f172f2ef
4
+ data.tar.gz: 96ecf2cdc5e4053c1eec56c0ea5d27ec5c4353230b508385fd84f39f486a4baf
5
5
  SHA512:
6
- metadata.gz: 5314750901b395a42cdb9efe6c3a2992bb67a4d7561a0937422d48574f7705944a0b7317ccc5b10eda510734a8dac2375eaf27c1932be26ea1000662b14cf31d
7
- data.tar.gz: 2ec012b81b43e319df14fbaefeb72b38bc2f065358084d479e927d68c58734e44c6b3d252436dc3fcc296dbfeb0c7798105fb52f3aca7325904673f7cf9647e4
6
+ metadata.gz: a5d0d3daa686424b1dbab55e684ca483aff5a060c423c1bdc6796fcf1bbf4de918595d94f8df579918067778c8ab311fb7ba0c4ed34c5d4246ef21600c35d2af
7
+ data.tar.gz: 90a8511576aae0756b4e817b3dc61e4b55b5e2fdb744b1125f5892e09b544a7b7e01c746b5b510d986031d6ecf072ed5f246e125745790e0eb0384d4fdee7f16
@@ -70,6 +70,12 @@ module Committee
70
70
  return Committee::Drivers::OpenAPI3::Driver.new.parse(openapi)
71
71
  end
72
72
 
73
+ if (version = hash['openapi'])
74
+ if Gem::Version.new(version) >= Gem::Version.new("3.1")
75
+ raise OpenAPI3Unsupported.new('Committee does not support OpenAPI 3.1+ yet')
76
+ end
77
+ end
78
+
73
79
  driver = if hash['swagger'] == '2.0'
74
80
  Committee::Drivers::OpenAPI2::Driver.new
75
81
  else
@@ -6,7 +6,7 @@ module Committee
6
6
  def initialize(app, options={})
7
7
  super
8
8
 
9
- @strict = options[:strict]
9
+ @strict = options[:strict]
10
10
  end
11
11
 
12
12
  def handle(request)
@@ -4,11 +4,12 @@ module Committee
4
4
  module SchemaValidator
5
5
  class HyperSchema
6
6
  class ResponseValidator
7
- attr_reader :validate_success_only
7
+ attr_reader :allow_blank_structures, :validate_success_only
8
8
 
9
9
  def initialize(link, options = {})
10
10
  @link = link
11
11
  @validate_success_only = options[:validate_success_only]
12
+ @allow_blank_structures = options[:allow_blank_structures]
12
13
 
13
14
  @validator = JsonSchema::Validator.new(target_schema(link))
14
15
  end
@@ -39,9 +40,18 @@ module Committee
39
40
  return if data == nil
40
41
  end
41
42
 
42
- if Committee::Middleware::ResponseValidation.validate?(status, validate_success_only) && !@validator.validate(data)
43
- errors = JsonSchema::SchemaError.aggregate(@validator.errors).join("\n")
44
- raise InvalidResponse, "Invalid response.\n\n#{errors}"
43
+ if allow_blank_structures && @link.is_a?(Committee::Drivers::OpenAPI2::Link) && !@link.target_schema
44
+ return if data.nil?
45
+ end
46
+
47
+ begin
48
+ if Committee::Middleware::ResponseValidation.validate?(status, validate_success_only) && !@validator.validate(data)
49
+ errors = JsonSchema::SchemaError.aggregate(@validator.errors).join("\n")
50
+ raise InvalidResponse, "Invalid response.\n\n#{errors}"
51
+ end
52
+ rescue => e
53
+ raise InvalidResponse, "Invalid response.\n\nschema is undefined" if /undefined method .all_of. for nil/ =~ e.message
54
+ raise e
45
55
  end
46
56
  end
47
57
 
@@ -33,7 +33,7 @@ module Committee
33
33
  data = JSON.parse(full_body) if parse_to_json
34
34
  end
35
35
 
36
- Committee::SchemaValidator::HyperSchema::ResponseValidator.new(link, validate_success_only: validator_option.validate_success_only).call(status, headers, data)
36
+ Committee::SchemaValidator::HyperSchema::ResponseValidator.new(link, validate_success_only: validator_option.validate_success_only, allow_blank_structures: validator_option.allow_blank_structures).call(status, headers, data)
37
37
  end
38
38
 
39
39
  def link_exist?
@@ -87,7 +87,7 @@ module Committee
87
87
 
88
88
  request.env[validator_option.headers_key] = unpacker.unpack_headers(request)
89
89
 
90
- request_param, is_form_params = unpacker.unpack_request_params(request)
90
+ request_param, _is_form_params = unpacker.unpack_request_params(request)
91
91
  request.env[validator_option.request_body_hash_key] = request_param
92
92
  request.env[validator_option.path_hash_key] = coerce_path_params
93
93
 
@@ -97,7 +97,7 @@ module Committee
97
97
  end
98
98
 
99
99
  def copy_coerced_data_to_params(request)
100
- order = if validator_option.parameter_overwite_by_rails_rule
100
+ order = if validator_option.parameter_overwrite_by_rails_rule
101
101
  # (high priority) path_hash_key -> query_param -> request_body_hash
102
102
  [validator_option.request_body_hash_key, validator_option.query_hash_key, validator_option.path_hash_key]
103
103
  else
@@ -4,7 +4,8 @@ module Committee
4
4
  module SchemaValidator
5
5
  class Option
6
6
  # Boolean Options
7
- attr_reader :allow_form_params,
7
+ attr_reader :allow_blank_structures,
8
+ :allow_form_params,
8
9
  :allow_get_body,
9
10
  :allow_query_params,
10
11
  :check_content_type,
@@ -17,7 +18,7 @@ module Committee
17
18
  :optimistic_json,
18
19
  :validate_success_only,
19
20
  :parse_response_by_content_type,
20
- :parameter_overwite_by_rails_rule
21
+ :parameter_overwrite_by_rails_rule
21
22
 
22
23
  # Non-boolean options:
23
24
  attr_reader :headers_key,
@@ -29,30 +30,38 @@ module Committee
29
30
 
30
31
  def initialize(options, schema, schema_type)
31
32
  # Non-boolean options
32
- @headers_key = options[:headers_key] || "committee.headers"
33
- @params_key = options[:params_key] || "committee.params"
34
- @query_hash_key = options[:query_hash_key] || "committee.query_hash"
35
- @path_hash_key = options[:path_hash_key] || "committee.path_hash"
33
+ @headers_key = options[:headers_key] || "committee.headers"
34
+ @params_key = options[:params_key] || "committee.params"
35
+ @query_hash_key = options[:query_hash_key] || "committee.query_hash"
36
+ @path_hash_key = options[:path_hash_key] || "committee.path_hash"
36
37
  @request_body_hash_key = options[:request_body_hash_key] || "committee.request_body_hash"
37
38
 
38
- @prefix = options[:prefix]
39
+ @prefix = options[:prefix]
39
40
 
40
41
  # Boolean options and have a common value by default
41
- @allow_form_params = options.fetch(:allow_form_params, true)
42
- @allow_query_params = options.fetch(:allow_query_params, true)
43
- @check_content_type = options.fetch(:check_content_type, true)
44
- @check_header = options.fetch(:check_header, true)
45
- @coerce_recursive = options.fetch(:coerce_recursive, true)
46
- @optimistic_json = options.fetch(:optimistic_json, false)
47
- @parse_response_by_content_type = options.fetch(:parse_response_by_content_type, true)
48
- @parameter_overwite_by_rails_rule = options.fetch(:parameter_overwite_by_rails_rule, true)
42
+ @allow_blank_structures = options.fetch(:allow_blank_structures, false)
43
+ @allow_form_params = options.fetch(:allow_form_params, true)
44
+ @allow_query_params = options.fetch(:allow_query_params, true)
45
+ @check_content_type = options.fetch(:check_content_type, true)
46
+ @check_header = options.fetch(:check_header, true)
47
+ @coerce_recursive = options.fetch(:coerce_recursive, true)
48
+ @optimistic_json = options.fetch(:optimistic_json, false)
49
+ @parse_response_by_content_type = options.fetch(:parse_response_by_content_type, true)
50
+
51
+ @parameter_overwrite_by_rails_rule =
52
+ if options.key?(:parameter_overwite_by_rails_rule)
53
+ Committee.warn_deprecated_until_6(true, "The option `parameter_overwite_by_rails_rule` is deprecated. Use `parameter_overwrite_by_rails_rule` instead.")
54
+ options[:parameter_overwite_by_rails_rule]
55
+ else
56
+ options.fetch(:parameter_overwrite_by_rails_rule, true)
57
+ end
49
58
 
50
59
  # Boolean options and have a different value by default
51
- @allow_get_body = options.fetch(:allow_get_body, schema.driver.default_allow_get_body)
52
- @coerce_date_times = options.fetch(:coerce_date_times, schema.driver.default_coerce_date_times)
53
- @coerce_form_params = options.fetch(:coerce_form_params, schema.driver.default_coerce_form_params)
54
- @coerce_path_params = options.fetch(:coerce_path_params, schema.driver.default_path_params)
55
- @coerce_query_params = options.fetch(:coerce_query_params, schema.driver.default_query_params)
60
+ @allow_get_body = options.fetch(:allow_get_body, schema.driver.default_allow_get_body)
61
+ @coerce_date_times = options.fetch(:coerce_date_times, schema.driver.default_coerce_date_times)
62
+ @coerce_form_params = options.fetch(:coerce_form_params, schema.driver.default_coerce_form_params)
63
+ @coerce_path_params = options.fetch(:coerce_path_params, schema.driver.default_path_params)
64
+ @coerce_query_params = options.fetch(:coerce_query_params, schema.driver.default_query_params)
56
65
  @validate_success_only = options.fetch(:validate_success_only, schema.driver.default_validate_success_only)
57
66
  end
58
67
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Committee
4
- VERSION = '5.1.0'.freeze
4
+ VERSION = '5.3.0'.freeze
5
5
  end
data/lib/committee.rb CHANGED
@@ -22,7 +22,7 @@ module Committee
22
22
  end
23
23
 
24
24
  def self.warn_deprecated_until_6(cond, message)
25
- raise "remove deprecated!" unless Committee::VERSION.start_with?("5")
25
+ raise "remove deprecated!" unless Committee::VERSION.start_with?("5")
26
26
  warn("[DEPRECATION] #{message}") if cond
27
27
  end
28
28
  end
@@ -44,8 +44,6 @@ describe Committee::Bin::CommitteeStub, "app" do
44
44
 
45
45
  def app
46
46
  options = {}
47
- # TODO: delete when 5.0.0 released because default value changed
48
- options[:parse_response_by_content_type] = false
49
47
 
50
48
  @bin.get_app(hyper_schema, options)
51
49
  end
@@ -19,13 +19,15 @@ describe Committee do
19
19
  old_stderr = $stderr
20
20
  $stderr = StringIO.new
21
21
  begin
22
- stub(Committee).debug? { false }
23
- Committee.log_debug "blah"
24
- assert_equal "", $stderr.string
22
+ Committee.stub(:debug?, false) do
23
+ Committee.log_debug "blah"
24
+ assert_equal "", $stderr.string
25
+ end
25
26
 
26
- stub(Committee).debug? { true }
27
- Committee.log_debug "blah"
28
- assert_equal "blah\n", $stderr.string
27
+ Committee.stub(:debug?, true) do
28
+ Committee.log_debug "blah"
29
+ assert_equal "blah\n", $stderr.string
30
+ end
29
31
  ensure
30
32
  $stderr = old_stderr
31
33
  end
data/test/drivers_test.rb CHANGED
@@ -48,6 +48,13 @@ describe Committee::Drivers do
48
48
  assert_kind_of Committee::Drivers::OpenAPI3::Schema, s
49
49
  end
50
50
 
51
+ it 'fails to load OpenAPI 3.1+' do
52
+ e = assert_raises(Committee::OpenAPI3Unsupported) do
53
+ Committee::Drivers.load_from_file(open_api_3_1_schema_path, parser_options:{strict_reference_validation: true})
54
+ end
55
+ assert_equal 'Committee does not support OpenAPI 3.1+ yet', e.message
56
+ end
57
+
51
58
  it 'fails to load OpenAPI 3 with invalid reference' do
52
59
  parser_options = { strict_reference_validation: true }
53
60
  assert_raises(OpenAPIParser::MissingReferenceError) do
@@ -138,6 +145,13 @@ describe Committee::Drivers do
138
145
  assert_kind_of Committee::Drivers::Schema, s
139
146
  assert_kind_of Committee::Drivers::HyperSchema::Schema, s
140
147
  end
148
+
149
+ it 'fails to load OpenAPI 3.1+' do
150
+ e = assert_raises(Committee::OpenAPI3Unsupported) do
151
+ Committee::Drivers.load_from_data(open_api_3_1_data)
152
+ end
153
+ assert_equal 'Committee does not support OpenAPI 3.1+ yet', e.message
154
+ end
141
155
  end
142
156
  end
143
157
 
@@ -117,9 +117,6 @@ describe Committee::Middleware::Base do
117
117
  private
118
118
 
119
119
  def new_rack_app(options = {})
120
- # TODO: delete when 5.0.0 released because default value changed
121
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
122
-
123
120
  Rack::Builder.new {
124
121
  use Committee::Middleware::RequestValidation, options
125
122
  run lambda { |_|
@@ -419,7 +419,7 @@ describe Committee::Middleware::RequestValidation do
419
419
  assert_equal env['committee.query_hash']['integer'], 42
420
420
  #assert_equal env['rack.request.query_hash'][:integer], 42 # this isn't hash indifferent hash because we use rack.request.query_hash
421
421
  [204, {}, []]
422
- end, schema: open_api_3_schema, parameter_overwite_by_rails_rule: false)
422
+ end, schema: open_api_3_schema, parameter_overwrite_by_rails_rule: false)
423
423
 
424
424
  header "Content-Type", "application/json"
425
425
  post '/overwrite_same_parameter?integer=42'
@@ -434,7 +434,7 @@ describe Committee::Middleware::RequestValidation do
434
434
  assert_equal env['committee.request_body_hash'][:integer], 21
435
435
  assert_equal env['committee.query_hash']['integer'], 42
436
436
  [204, {}, []]
437
- end, schema: open_api_3_schema, parameter_overwite_by_rails_rule: false)
437
+ end, schema: open_api_3_schema, parameter_overwrite_by_rails_rule: false)
438
438
 
439
439
  params = {integer: 21}
440
440
 
@@ -454,7 +454,7 @@ describe Committee::Middleware::RequestValidation do
454
454
  assert_equal env['committee.query_hash']['integer'], 84 # we can't use query_parameter :(
455
455
  #assert_equal env['rack.request.query_hash'][:integer], 21 # this isn't hash indifferent hash because we use rack.request.query_hash
456
456
  [204, {}, []]
457
- end, schema: open_api_3_schema, parameter_overwite_by_rails_rule: false)
457
+ end, schema: open_api_3_schema, parameter_overwrite_by_rails_rule: false)
458
458
 
459
459
  params = {integer: 21}
460
460
 
@@ -615,9 +615,6 @@ describe Committee::Middleware::RequestValidation do
615
615
  end
616
616
 
617
617
  def new_rack_app_with_lambda(check_lambda, options = {})
618
- # TODO: delete when 5.0.0 released because default value changed
619
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
620
-
621
618
  Rack::Builder.new {
622
619
  use Committee::Middleware::RequestValidation, options
623
620
  run check_lambda
@@ -505,9 +505,6 @@ describe Committee::Middleware::RequestValidation do
505
505
 
506
506
 
507
507
  def new_rack_app_with_lambda(check_lambda, options = {})
508
- # TODO: delete when 5.0.0 released because default value changed
509
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
510
-
511
508
  Rack::Builder.new {
512
509
  use Committee::Middleware::RequestValidation, options
513
510
  run check_lambda
@@ -273,9 +273,6 @@ describe Committee::Middleware::ResponseValidation do
273
273
  private
274
274
 
275
275
  def new_response_rack(response, headers = {}, options = {}, rack_options = {})
276
- # TODO: delete when 5.0.0 released because default value changed
277
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
278
-
279
276
  status = rack_options[:status] || 200
280
277
  content_type = rack_options[:content_type] || "application/json"
281
278
  headers = {
@@ -15,14 +15,6 @@ describe Committee::Middleware::ResponseValidation do
15
15
  assert_equal 200, last_response.status
16
16
  end
17
17
 
18
- # TODO: remove 5.0.0
19
- it "passes through a valid response" do
20
- # will show deprecated message
21
- @app = new_rack_app(JSON.generate([ValidApp]), {}, schema: hyper_schema, strict: true)
22
- get "/apps"
23
- assert_equal 200, last_response.status
24
- end
25
-
26
18
  it "doesn't call error_handler (has a arg) when response is valid" do
27
19
  called = false
28
20
  pr = ->(_e) { called = true }
@@ -144,6 +136,29 @@ describe Committee::Middleware::ResponseValidation do
144
136
  assert_equal 200, last_response.status
145
137
  end
146
138
 
139
+ it "passes through a valid response for OpenAPI when data=nil, target_schema=empty, allow_blank_structures=true" do
140
+ @app = new_rack_app("null", {},
141
+ allow_blank_structures: true, schema: open_api_2_schema)
142
+ get "/api/pets/cat"
143
+ assert_equal 200, last_response.status
144
+ end
145
+
146
+ it "invalid responses for OpenAPI when data=nil, target_schema=empty, allow_blank_structures=false" do
147
+ @app = new_rack_app("null", {},
148
+ allow_blank_structures: false, schema: open_api_2_schema)
149
+ get "/api/pets/cat"
150
+ assert_equal 500, last_response.status
151
+ assert_match(/Invalid response/i, last_response.body)
152
+ end
153
+
154
+ it "passes through a valid response for OpenAPI when data=nil, target_schema=present, allow_blank_structures=true" do
155
+ @app = new_rack_app("null", {},
156
+ allow_blank_structures: true, schema: open_api_2_schema)
157
+ get "/api/pets/dog"
158
+ assert_equal 500, last_response.status
159
+ assert_match(/nil is not an array/i, last_response.body)
160
+ end
161
+
147
162
  it "detects an invalid response for OpenAPI" do
148
163
  @app = new_rack_app("{_}", {}, schema: open_api_2_schema)
149
164
  get "/api/pets"
@@ -173,9 +188,6 @@ describe Committee::Middleware::ResponseValidation do
173
188
  private
174
189
 
175
190
  def new_rack_app(response, headers = {}, options = {})
176
- # TODO: delete when 5.0.0 released because default value changed
177
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
178
-
179
191
  headers = {
180
192
  "Content-Type" => "application/json"
181
193
  }.merge(headers)
@@ -113,9 +113,6 @@ describe Committee::Middleware::Stub do
113
113
  response = options.delete(:response)
114
114
  suppress = options.delete(:suppress)
115
115
 
116
- # TODO: delete when 5.0.0 released because default value changed
117
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
118
-
119
116
  Rack::Builder.new {
120
117
  use Committee::Middleware::Stub, options
121
118
  run lambda { |env|
@@ -69,8 +69,6 @@ describe Committee::SchemaValidator::HyperSchema::Router do
69
69
  end
70
70
 
71
71
  def hyper_schema_router(options = {})
72
- # TODO: delete when 5.0.0 released because default value changed
73
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
74
72
  schema = Committee::Drivers::HyperSchema::Driver.new.parse(hyper_schema_data)
75
73
  validator_option = Committee::SchemaValidator::Option.new(options, schema, :hyper_schema)
76
74
 
@@ -78,8 +76,6 @@ describe Committee::SchemaValidator::HyperSchema::Router do
78
76
  end
79
77
 
80
78
  def open_api_2_router(options = {})
81
- # TODO: delete when 5.0.0 released because default value changed
82
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
83
79
  schema = Committee::Drivers::OpenAPI2::Driver.new.parse(open_api_2_data)
84
80
  validator_option = Committee::SchemaValidator::Option.new(options, schema, :hyper_schema)
85
81
 
@@ -9,12 +9,7 @@ describe Committee::SchemaValidator::OpenAPI3::OperationWrapper do
9
9
  before do
10
10
  @path = '/validate'
11
11
  @method = 'post'
12
-
13
- # TODO: delete when 5.0.0 released because default value changed
14
- options = {}
15
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
16
-
17
- @validator_option = Committee::SchemaValidator::Option.new(options, open_api_3_schema, :open_api_3)
12
+ @validator_option = Committee::SchemaValidator::Option.new({}, open_api_3_schema, :open_api_3)
18
13
  end
19
14
 
20
15
  def operation_object
@@ -96,9 +96,6 @@ describe Committee::SchemaValidator::OpenAPI3::RequestValidator do
96
96
  end
97
97
 
98
98
  def new_rack_app(options = {})
99
- # TODO: delete when 5.0.0 released because default value changed
100
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
101
-
102
99
  Rack::Builder.new {
103
100
  use Committee::Middleware::RequestValidation, options
104
101
  run lambda { |_|
@@ -13,11 +13,7 @@ describe Committee::SchemaValidator::OpenAPI3::ResponseValidator do
13
13
  @path = '/validate'
14
14
  @method = 'post'
15
15
 
16
- # TODO: delete when 5.0.0 released because default value changed
17
- options = {}
18
- options[:parse_response_by_content_type] = true if options[:parse_response_by_content_type] == nil
19
-
20
- @validator_option = Committee::SchemaValidator::Option.new(options, open_api_3_schema, :open_api_3)
16
+ @validator_option = Committee::SchemaValidator::Option.new({}, open_api_3_schema, :open_api_3)
21
17
  end
22
18
 
23
19
  it "passes through a valid response" do
@@ -30,9 +30,6 @@ describe Committee::Test::Methods do
30
30
  @committee_schema = nil
31
31
 
32
32
  @committee_options = {schema: hyper_schema}
33
-
34
- # TODO: delete when 5.0.0 released because default value changed
35
- @committee_options[:parse_response_by_content_type] = false
36
33
  end
37
34
 
38
35
  describe "#assert_schema_conform" do
@@ -29,9 +29,6 @@ describe Committee::Test::Methods do
29
29
  @committee_router = nil
30
30
  @committee_schema = nil
31
31
  @committee_options = {}
32
-
33
- # TODO: delete when 5.0.0 released because default value changed
34
- @committee_options[:parse_response_by_content_type] = true
35
32
  end
36
33
 
37
34
  describe "Hyper-Schema" do
data/test/test_helper.rb CHANGED
@@ -21,7 +21,6 @@ require "minitest"
21
21
  require "minitest/spec"
22
22
  require "minitest/autorun"
23
23
  require "rack/test"
24
- require "rr"
25
24
  require "pry"
26
25
  require "stringio"
27
26
 
@@ -91,6 +90,14 @@ def open_api_3_data
91
90
  end
92
91
  end
93
92
 
93
+ def open_api_3_1_data
94
+ if YAML.respond_to?(:unsafe_load_file)
95
+ YAML.unsafe_load_file(open_api_3_1_schema_path)
96
+ else
97
+ YAML.load_file(open_api_3_1_schema_path)
98
+ end
99
+ end
100
+
94
101
  def hyper_schema_schema_path
95
102
  "./test/data/hyperschema/paas.json"
96
103
  end
@@ -115,6 +122,10 @@ def open_api_3_0_1_schema_path
115
122
  "./test/data/openapi3/3_0_1.yaml"
116
123
  end
117
124
 
125
+ def open_api_3_1_schema_path
126
+ "./test/data/openapi3/3_1.yaml"
127
+ end
128
+
118
129
  def open_api_3_invalid_reference_path
119
130
  "./test/data/openapi3/invalid_reference.yaml"
120
131
  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: 5.1.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brandur
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2024-01-16 00:00:00.000000000 Z
13
+ date: 2024-05-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: json_schema
@@ -94,28 +94,14 @@ dependencies:
94
94
  requirements:
95
95
  - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '12.3'
97
+ version: '13.1'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '12.3'
105
- - !ruby/object:Gem::Dependency
106
- name: rr
107
- requirement: !ruby/object:Gem::Requirement
108
- requirements:
109
- - - "~>"
110
- - !ruby/object:Gem::Version
111
- version: '1.1'
112
- type: :development
113
- prerelease: false
114
- version_requirements: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '1.1'
104
+ version: '13.1'
119
105
  - !ruby/object:Gem::Dependency
120
106
  name: pry
121
107
  requirement: !ruby/object:Gem::Requirement
@@ -146,20 +132,6 @@ dependencies:
146
132
  version: '0'
147
133
  - !ruby/object:Gem::Dependency
148
134
  name: rubocop
149
- requirement: !ruby/object:Gem::Requirement
150
- requirements:
151
- - - "<"
152
- - !ruby/object:Gem::Version
153
- version: 1.13.0
154
- type: :development
155
- prerelease: false
156
- version_requirements: !ruby/object:Gem::Requirement
157
- requirements:
158
- - - "<"
159
- - !ruby/object:Gem::Version
160
- version: 1.13.0
161
- - !ruby/object:Gem::Dependency
162
- name: rubocop-performance
163
135
  requirement: !ruby/object:Gem::Requirement
164
136
  requirements:
165
137
  - - ">="
@@ -173,21 +145,7 @@ dependencies:
173
145
  - !ruby/object:Gem::Version
174
146
  version: '0'
175
147
  - !ruby/object:Gem::Dependency
176
- name: rubocop-minitest
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - ">="
187
- - !ruby/object:Gem::Version
188
- version: '0'
189
- - !ruby/object:Gem::Dependency
190
- name: rubocop-rake
148
+ name: rubocop-performance
191
149
  requirement: !ruby/object:Gem::Requirement
192
150
  requirements:
193
151
  - - ">="
@@ -305,7 +263,11 @@ files:
305
263
  homepage: https://github.com/interagent/committee
306
264
  licenses:
307
265
  - MIT
308
- metadata: {}
266
+ metadata:
267
+ bug_tracker_uri: https://github.com/interagent/committee/issues
268
+ changelog_uri: https://github.com/interagent/committee/blob/master/CHANGELOG.md
269
+ rubygems_mfa_required: 'true'
270
+ source_code_uri: https://github.com/interagent/committee
309
271
  post_install_message:
310
272
  rdoc_options: []
311
273
  require_paths:
@@ -314,14 +276,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
314
276
  requirements:
315
277
  - - ">="
316
278
  - !ruby/object:Gem::Version
317
- version: 2.6.0
279
+ version: 2.7.0
318
280
  required_rubygems_version: !ruby/object:Gem::Requirement
319
281
  requirements:
320
282
  - - ">="
321
283
  - !ruby/object:Gem::Version
322
284
  version: '0'
323
285
  requirements: []
324
- rubygems_version: 3.4.20
286
+ rubygems_version: 3.5.3
325
287
  signing_key:
326
288
  specification_version: 4
327
289
  summary: A collection of Rack middleware to support JSON Schema.