openapi_parser 1.0.0.beta1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yaml +9 -2
  3. data/.ruby-version +1 -1
  4. data/CHANGELOG.md +10 -0
  5. data/Rakefile +1 -1
  6. data/Steepfile +3 -3
  7. data/lib/openapi_parser/errors.rb +22 -0
  8. data/lib/openapi_parser/{schema_validators → schema_validator}/all_of_validator.rb +4 -0
  9. data/lib/openapi_parser/{schema_validators → schema_validator}/any_of_validator.rb +3 -0
  10. data/lib/openapi_parser/{schema_validators → schema_validator}/array_validator.rb +9 -0
  11. data/lib/openapi_parser/{schema_validators → schema_validator}/base.rb +1 -1
  12. data/lib/openapi_parser/{schema_validators → schema_validator}/one_of_validator.rb +3 -0
  13. data/lib/openapi_parser/{schema_validators → schema_validator}/string_validator.rb +25 -22
  14. data/lib/openapi_parser/{schema_validators → schema_validator}/unspecified_type_validator.rb +1 -1
  15. data/lib/openapi_parser/schema_validator.rb +15 -15
  16. data/lib/openapi_parser/schemas/classes.rb +1 -0
  17. data/lib/openapi_parser/schemas/info.rb +6 -0
  18. data/lib/openapi_parser/schemas/openapi.rb +4 -0
  19. data/lib/openapi_parser/schemas.rb +1 -0
  20. data/lib/openapi_parser/version.rb +1 -1
  21. data/lib/openapi_parser.rb +6 -2
  22. data/openapi_parser.gemspec +9 -3
  23. data/sig/openapi_parser/config.rbs +2 -0
  24. data/sig/openapi_parser/errors.rbs +22 -0
  25. data/sig/openapi_parser/reference_expander.rbs +3 -0
  26. data/sig/openapi_parser/schema_validators/base.rbs +4 -3
  27. data/sig/types.rbs +5 -0
  28. data/sig/wip_types.rbs +0 -3
  29. metadata +41 -52
  30. /data/lib/openapi_parser/{schema_validators → schema_validator}/boolean_validator.rb +0 -0
  31. /data/lib/openapi_parser/{schema_validators → schema_validator}/enumable.rb +0 -0
  32. /data/lib/openapi_parser/{schema_validators → schema_validator}/float_validator.rb +0 -0
  33. /data/lib/openapi_parser/{schema_validators → schema_validator}/integer_validator.rb +0 -0
  34. /data/lib/openapi_parser/{schema_validators → schema_validator}/minimum_maximum.rb +0 -0
  35. /data/lib/openapi_parser/{schema_validators → schema_validator}/nil_validator.rb +0 -0
  36. /data/lib/openapi_parser/{schema_validators → schema_validator}/object_validator.rb +0 -0
  37. /data/lib/openapi_parser/{schema_validators → schema_validator}/options.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e383e6ff9f0d2a6ac67fda1ac8663b82c249449a7c1cff616a72fb608344a816
4
- data.tar.gz: 53c6a442a5f170f5190197aa17a805a707fd586d7b4d0fc4c259ed8af46dc2bd
3
+ metadata.gz: 00f123cd8511ebd3cbe2f48ec901285d591a93ac1a56d2693f2ba896aebdf076
4
+ data.tar.gz: 263634fb1891c2fae9756c64e3fb0d0b3832484aced219b6091a7af9db3e6793
5
5
  SHA512:
6
- metadata.gz: 3cd78f54ac0bb0bca68e9538f3f33968b7815b76d88c39908735da2f18936118ecc66ec57a97ac491f2b0fdc7fd4985e312b8b32a4051d22a2242ed8ea55608f
7
- data.tar.gz: 22fcb549a4c134350274be73bc59114309d612f096b70dfd5633fe049b9b2111c176809575b2ce89fc30a2db3a8cda633c5ce18b82a58a418cd95d76ce23791a
6
+ metadata.gz: 3f58453f7daa0e73156cd221e1027cd7da7ecb8e63ce13fdee538c544380a763fa6c1b1de52e6a3a191e0f54c4fbde2ba1fd747d88ec5418a25075adcb1f246f
7
+ data.tar.gz: 9ebff3ee048466e02918cc6993de56147b640903418a1fbff9a6669a277c72954541c441bc2f7acdfff555ee4765c4392e7c3e7367235caff7774db01048f1ea
@@ -5,8 +5,15 @@ jobs:
5
5
  strategy:
6
6
  fail-fast: false
7
7
  matrix:
8
- os: [ubuntu-latest, macos-latest]
9
- ruby: [2.6, 2.7, '3.0', head]
8
+ os:
9
+ - ubuntu-latest
10
+ - macos-latest
11
+ ruby:
12
+ - "2.7"
13
+ - "3.0"
14
+ - "3.1"
15
+ - "3.2"
16
+ - ruby-head
10
17
  runs-on: ${{ matrix.os }}
11
18
  steps:
12
19
  - uses: actions/checkout@v2
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.3
1
+ 3.1.0
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 1.1.0 (2023-10-15)
4
+ ### Added
5
+ * Support for uniqueItems in array #154
6
+ * Fix nullable field does not work with allOf, anyOf and oneOf keyword #128
7
+ * drop ruby 2.6 #158
8
+
9
+ ## 1.0.0 (2021-02-03)
10
+ ### Added
11
+ * Add date-time format validation #126
12
+
3
13
  ## 1.0.0.beta1 (2021-12-15)
4
14
  ### Added
5
15
  * Add strict_reference_validation config and implementation to address/implement #29 #123
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ require 'rspec/core/rake_task'
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :steep do
7
- sh 'steep check'
7
+ sh 'steep check'
8
8
  end
9
9
 
10
10
  task :default => [:steep, :spec]
data/Steepfile CHANGED
@@ -4,8 +4,8 @@ target :lib do
4
4
 
5
5
  check "lib/openapi_parser.rb"
6
6
  check "lib/openapi_parser/config.rb"
7
- check "lib/openapi_parser/schema_validators/options.rb"
8
- check "lib/openapi_parser/schema_validators/base.rb"
7
+ check "lib/openapi_parser/schema_validator/options.rb"
8
+ check "lib/openapi_parser/schema_validator/base.rb"
9
9
 
10
- library 'uri'
10
+ library 'uri', 'json', 'pathname'
11
11
  end
@@ -206,6 +206,17 @@ module OpenAPIParser
206
206
  end
207
207
  end
208
208
 
209
+ class InvalidDateTimeFormat < OpenAPIError
210
+ def initialize(value, reference)
211
+ super(reference)
212
+ @value = value
213
+ end
214
+
215
+ def message
216
+ "#{@reference} Value: #{@value.inspect} is not conformant with date-time format"
217
+ end
218
+ end
219
+
209
220
  class NotExistStatusCodeDefinition < OpenAPIError
210
221
  def message
211
222
  "#{@reference} status code definition does not exist"
@@ -261,4 +272,15 @@ module OpenAPIParser
261
272
  "#{@reference} #{@value.inspect} contains fewer than min items"
262
273
  end
263
274
  end
275
+
276
+ class NotUniqueItems < OpenAPIError
277
+ def initialize(value, reference)
278
+ super(reference)
279
+ @value = value
280
+ end
281
+
282
+ def message
283
+ "#{@reference} #{@value.inspect} contains duplicate items"
284
+ end
285
+ end
264
286
  end
@@ -5,6 +5,10 @@ class OpenAPIParser::SchemaValidator
5
5
  # @param [Object] value
6
6
  # @param [OpenAPIParser::Schemas::Schema] schema
7
7
  def coerce_and_validate(value, schema, **keyword_args)
8
+ if value.nil? && schema.nullable
9
+ return [value, nil]
10
+ end
11
+
8
12
  # if any schema return error, it's not valida all of value
9
13
  remaining_keys = value.kind_of?(Hash) ? value.keys : []
10
14
  nested_additional_properties = false
@@ -3,6 +3,9 @@ class OpenAPIParser::SchemaValidator
3
3
  # @param [Object] value
4
4
  # @param [OpenAPIParser::Schemas::Schema] schema
5
5
  def coerce_and_validate(value, schema, **_keyword_args)
6
+ if value.nil? && schema.nullable
7
+ return [value, nil]
8
+ end
6
9
  if schema.discriminator
7
10
  return validate_discriminator_schema(schema.discriminator, value)
8
11
  end
@@ -8,6 +8,9 @@ class OpenAPIParser::SchemaValidator
8
8
  value, err = validate_max_min_items(value, schema)
9
9
  return [nil, err] if err
10
10
 
11
+ value, err = validate_unique_items(value, schema)
12
+ return [nil, err] if err
13
+
11
14
  # array type have an schema in items property
12
15
  items_schema = schema.items
13
16
  coerced_values = value.map do |v|
@@ -28,5 +31,11 @@ class OpenAPIParser::SchemaValidator
28
31
 
29
32
  [value, nil]
30
33
  end
34
+
35
+ def validate_unique_items(value, schema)
36
+ return [nil, OpenAPIParser::NotUniqueItems.new(value, schema.object_reference)] if schema.uniqueItems && value.length != value.uniq.length
37
+
38
+ [value, nil]
39
+ end
31
40
  end
32
41
  end
@@ -14,7 +14,7 @@ class OpenAPIParser::SchemaValidator
14
14
 
15
15
  def validate_discriminator_schema(discriminator, value, parent_discriminator_schemas: [])
16
16
  property_name = discriminator.property_name
17
- unless (property_name && value.key?(property_name))
17
+ if property_name.nil? || !value.key?(property_name)
18
18
  return [nil, OpenAPIParser::NotExistDiscriminatorPropertyName.new(discriminator.property_name, value, discriminator.object_reference)]
19
19
  end
20
20
  mapping_key = value[property_name]
@@ -3,6 +3,9 @@ class OpenAPIParser::SchemaValidator
3
3
  # @param [Object] value
4
4
  # @param [OpenAPIParser::Schemas::Schema] schema
5
5
  def coerce_and_validate(value, schema, **_keyword_args)
6
+ if value.nil? && schema.nullable
7
+ return [value, nil]
8
+ end
6
9
  if schema.discriminator
7
10
  return validate_discriminator_schema(schema.discriminator, value)
8
11
  end
@@ -16,11 +16,6 @@ class OpenAPIParser::SchemaValidator
16
16
  value, err = pattern_validate(value, schema)
17
17
  return [nil, err] if err
18
18
 
19
- unless @datetime_coerce_class.nil?
20
- value, err = coerce_date_time(value, schema)
21
- return [nil, err] if err
22
- end
23
-
24
19
  value, err = validate_max_min_length(value, schema)
25
20
  return [nil, err] if err
26
21
 
@@ -33,28 +28,14 @@ class OpenAPIParser::SchemaValidator
33
28
  value, err = validate_date_format(value, schema)
34
29
  return [nil, err] if err
35
30
 
31
+ value, err = validate_datetime_format(value, schema)
32
+ return [nil, err] if err
33
+
36
34
  [value, nil]
37
35
  end
38
36
 
39
37
  private
40
38
 
41
- # @param [OpenAPIParser::Schemas::Schema] schema
42
- def coerce_date_time(value, schema)
43
- return parse_date_time(value, schema) if schema.format == 'date-time'
44
-
45
- [value, nil]
46
- end
47
-
48
- def parse_date_time(value, schema)
49
- begin
50
- return @datetime_coerce_class.parse(value), nil
51
- rescue ArgumentError => e
52
- raise e unless e.message =~ /invalid date/
53
- end
54
-
55
- OpenAPIParser::ValidateError.build_error_result(value, schema)
56
- end
57
-
58
39
  # @param [OpenAPIParser::Schemas::Schema] schema
59
40
  def pattern_validate(value, schema)
60
41
  # pattern support string only so put this
@@ -101,5 +82,27 @@ class OpenAPIParser::SchemaValidator
101
82
 
102
83
  return [value, nil]
103
84
  end
85
+
86
+ def validate_datetime_format(value, schema)
87
+ return [value, nil] unless schema.format == 'date-time'
88
+
89
+ begin
90
+ if @datetime_coerce_class.nil?
91
+ # validate only
92
+ DateTime.rfc3339(value)
93
+ [value, nil]
94
+ else
95
+ # validate and coerce
96
+ if @datetime_coerce_class == Time
97
+ [DateTime.rfc3339(value).to_time, nil]
98
+ else
99
+ [@datetime_coerce_class.rfc3339(value), nil]
100
+ end
101
+ end
102
+ rescue ArgumentError
103
+ # when rfc3339(value) failed
104
+ [nil, OpenAPIParser::InvalidDateTimeFormat.new(value, schema.object_reference)]
105
+ end
106
+ end
104
107
  end
105
108
  end
@@ -2,7 +2,7 @@ class OpenAPIParser::SchemaValidator
2
2
  class UnspecifiedTypeValidator < Base
3
3
  # @param [Object] value
4
4
  def coerce_and_validate(value, _schema, **_keyword_args)
5
- value
5
+ [value, nil]
6
6
  end
7
7
  end
8
8
  end
@@ -1,18 +1,18 @@
1
- require_relative 'schema_validators/options'
2
- require_relative 'schema_validators/enumable'
3
- require_relative 'schema_validators/minimum_maximum'
4
- require_relative 'schema_validators/base'
5
- require_relative 'schema_validators/string_validator'
6
- require_relative 'schema_validators/integer_validator'
7
- require_relative 'schema_validators/float_validator'
8
- require_relative 'schema_validators/boolean_validator'
9
- require_relative 'schema_validators/object_validator'
10
- require_relative 'schema_validators/array_validator'
11
- require_relative 'schema_validators/any_of_validator'
12
- require_relative 'schema_validators/all_of_validator'
13
- require_relative 'schema_validators/one_of_validator'
14
- require_relative 'schema_validators/nil_validator'
15
- require_relative 'schema_validators/unspecified_type_validator'
1
+ require_relative 'schema_validator/options'
2
+ require_relative 'schema_validator/enumable'
3
+ require_relative 'schema_validator/minimum_maximum'
4
+ require_relative 'schema_validator/base'
5
+ require_relative 'schema_validator/string_validator'
6
+ require_relative 'schema_validator/integer_validator'
7
+ require_relative 'schema_validator/float_validator'
8
+ require_relative 'schema_validator/boolean_validator'
9
+ require_relative 'schema_validator/object_validator'
10
+ require_relative 'schema_validator/array_validator'
11
+ require_relative 'schema_validator/any_of_validator'
12
+ require_relative 'schema_validator/all_of_validator'
13
+ require_relative 'schema_validator/one_of_validator'
14
+ require_relative 'schema_validator/nil_validator'
15
+ require_relative 'schema_validator/unspecified_type_validator'
16
16
 
17
17
  class OpenAPIParser::SchemaValidator
18
18
  # validate value by schema
@@ -16,4 +16,5 @@ module OpenAPIParser::Schemas
16
16
  class Schema < Base; end
17
17
  class Components < Base; end
18
18
  class Header < Base; end
19
+ class Info < Base; end
19
20
  end
@@ -0,0 +1,6 @@
1
+ module OpenAPIParser::Schemas
2
+ class Info < Base
3
+
4
+ openapi_attr_values :title, :version
5
+ end
6
+ end
@@ -29,6 +29,10 @@ module OpenAPIParser::Schemas
29
29
  # @return [Components, nil]
30
30
  openapi_attr_object :components, Components, reference: false
31
31
 
32
+ # @!attribute [r] info
33
+ # @return [Info, nil]
34
+ openapi_attr_object :info, Info, reference: false
35
+
32
36
  # @return [OpenAPIParser::RequestOperation, nil]
33
37
  def request_operation(http_method, request_path)
34
38
  OpenAPIParser::RequestOperation.create(http_method, request_path, @path_item_finder, @config)
@@ -15,3 +15,4 @@ require_relative 'schemas/components'
15
15
  require_relative 'schemas/media_type'
16
16
  require_relative 'schemas/schema'
17
17
  require_relative 'schemas/header'
18
+ require_relative 'schemas/info'
@@ -1,3 +1,3 @@
1
1
  module OpenAPIParser
2
- VERSION = '1.0.0.beta1'.freeze
2
+ VERSION = '2.0.0'.freeze
3
3
  end
@@ -43,13 +43,16 @@ module OpenAPIParser
43
43
  def load_uri(uri, config:, schema_registry:)
44
44
  # Open-uri doesn't open file scheme uri, so we try to open file path directly
45
45
  # File scheme uri which points to a remote file is not supported.
46
+ uri_path = uri.path
47
+ raise "file not found" if uri_path.nil?
48
+
46
49
  content = if uri.scheme == 'file'
47
- open(uri.path)&.read
50
+ open(uri_path)&.read
48
51
  elsif uri.is_a?(OpenURI::OpenRead)
49
52
  uri.open()&.read
50
53
  end
51
54
 
52
- extension = Pathname.new(uri.path).extname
55
+ extension = Pathname.new(uri_path).extname
53
56
  load_hash(parse_file(content, extension), config: config, uri: uri, schema_registry: schema_registry)
54
57
  end
55
58
 
@@ -85,6 +88,7 @@ module OpenAPIParser
85
88
  end
86
89
 
87
90
  def parse_json(content)
91
+ raise "json content is nil" unless content
88
92
  JSON.parse(content)
89
93
  end
90
94
 
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.description = 'parser for OpenAPI 3.0 or later'
13
13
  spec.homepage = 'https://github.com/ota42y/openapi_parser'
14
14
  spec.license = 'MIT'
15
- spec.required_ruby_version = ">= 2.6.0"
15
+ spec.required_ruby_version = ">= 2.7.0"
16
16
 
17
17
  # Specify which files should be added to the gem when it is released.
18
18
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -25,11 +25,17 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.add_development_dependency 'bundler', '>= 1.16'
27
27
  spec.add_development_dependency 'fincop'
28
- spec.add_development_dependency 'pry', '~> 0.12.0'
29
- spec.add_development_dependency 'pry-byebug'
28
+
29
+ if Gem::Version.create(RUBY_VERSION) < Gem::Version.create("3.2.0")
30
+ spec.add_development_dependency 'pry', '~> 0.12.0'
31
+ spec.add_development_dependency 'pry-byebug'
32
+ end
30
33
  spec.add_development_dependency 'rake', '>= 12.3.3'
31
34
  spec.add_development_dependency 'rspec', '~> 3.0'
32
35
  spec.add_development_dependency 'rspec-parameterized'
33
36
  spec.add_development_dependency 'simplecov'
34
37
  spec.add_development_dependency "steep"
38
+ # for steep
39
+ # https://github.com/soutaro/steep/issues/466
40
+ spec.add_development_dependency "activesupport", '~> 6.0'
35
41
  end
@@ -2,6 +2,8 @@
2
2
  module OpenAPIParser
3
3
  class Config
4
4
  @config: untyped
5
+ @request_validator_options: OpenAPIParser::SchemaValidator::Options
6
+ @response_validate_options: OpenAPIParser::SchemaValidator::ResponseValidateOptions
5
7
  alias request_body_options request_validator_options
6
8
  alias path_params_options request_validator_options
7
9
 
@@ -0,0 +1,22 @@
1
+ module OpenAPIParser
2
+ class OpenAPIError < StandardError
3
+ def initialize: (untyped reference) -> untyped
4
+ end
5
+
6
+ class ValidateError < OpenAPIError
7
+ def initialize: (untyped data, (String | nil) type, untyped reference) -> untyped
8
+ def message: -> String
9
+
10
+ def self.build_error_result: (Object value, OpenAPIParser::Schemas::Schema schema) -> [nil, OpenAPIParser::ValidateError]
11
+ end
12
+
13
+ class NotExistDiscriminatorMappedSchema < OpenAPIError
14
+ def initialize: (untyped mapped_schema_reference, untyped reference) -> untyped
15
+ def message: -> String
16
+ end
17
+
18
+ class NotExistDiscriminatorPropertyName < OpenAPIError
19
+ def initialize: (untyped mapped_schema_reference, untyped value, untyped reference) -> untyped
20
+ def message: -> String
21
+ end
22
+ end
@@ -0,0 +1,3 @@
1
+ class OpenAPIParser::ReferenceExpander
2
+ def self.expand: (OpenAPIParser::Schemas::OpenAPI openapi, untyped validate_references) -> nil
3
+ end
@@ -4,14 +4,15 @@ module OpenAPIParser
4
4
  class Base
5
5
  @coerce_value: bool | nil
6
6
 
7
- def initialize: (OpenAPIParser::SchemaValidator::Validatable validatable, (bool | nil) coerce_value) -> untyped
8
7
  attr_reader validatable: OpenAPIParser::SchemaValidator::Validatable
9
- def coerce_and_validate: (Object _value, OpenAPIParser::Schemas::Schema _schema, **untyped) -> bot
8
+
9
+ def initialize: (OpenAPIParser::SchemaValidator::Validatable validatable, (bool | nil) coerce_value) -> untyped
10
+ def coerce_and_validate: (Object _value, OpenAPIParser::Schemas::Schema _schema, **untyped) -> [untyped, (ValidateError | NotExistDiscriminatorMappedSchema | nil)]
10
11
  def validate_discriminator_schema: (
11
12
  OpenAPIParser::Schemas::Discriminator discriminator,
12
13
  Hash[String, bot] value,
13
14
  ?parent_discriminator_schemas: Array[OpenAPIParser::Schemas::Schema]
14
- ) -> [Object | nil, OpenAPIParser::validate_error]
15
+ ) -> [Object | nil, OpenAPIParser::OpenAPIError]
15
16
  end
16
17
  end
17
18
  end
data/sig/types.rbs CHANGED
@@ -6,3 +6,8 @@ module OpenURI
6
6
  end
7
7
  end
8
8
 
9
+
10
+ module Psych
11
+ def self.safe_load: (untyped content, untyped parmitted_classes) -> Hash[bot, bot]
12
+ end
13
+
data/sig/wip_types.rbs CHANGED
@@ -62,6 +62,3 @@ class OpenAPIParser::Schemas::Discriminator < OpenAPIParser::Schemas::Base
62
62
  attr_reader property_name: (String | nil)
63
63
  attr_reader mapping: Hash[String, String]
64
64
  end
65
-
66
- class OpenAPIParser::OpenAPIError
67
- 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: 1.0.0.beta1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ota42y
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-15 00:00:00.000000000 Z
11
+ date: 2023-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,34 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: pry
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 0.12.0
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 0.12.0
55
- - !ruby/object:Gem::Dependency
56
- name: pry-byebug
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: rake
71
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +108,20 @@ dependencies:
136
108
  - - ">="
137
109
  - !ruby/object:Gem::Version
138
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: activesupport
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '6.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '6.0'
139
125
  description: parser for OpenAPI 3.0 or later
140
126
  email:
141
127
  - ota42y@gmail.com
@@ -186,27 +172,28 @@ files:
186
172
  - lib/openapi_parser/reference_expander.rb
187
173
  - lib/openapi_parser/request_operation.rb
188
174
  - lib/openapi_parser/schema_validator.rb
189
- - lib/openapi_parser/schema_validators/all_of_validator.rb
190
- - lib/openapi_parser/schema_validators/any_of_validator.rb
191
- - lib/openapi_parser/schema_validators/array_validator.rb
192
- - lib/openapi_parser/schema_validators/base.rb
193
- - lib/openapi_parser/schema_validators/boolean_validator.rb
194
- - lib/openapi_parser/schema_validators/enumable.rb
195
- - lib/openapi_parser/schema_validators/float_validator.rb
196
- - lib/openapi_parser/schema_validators/integer_validator.rb
197
- - lib/openapi_parser/schema_validators/minimum_maximum.rb
198
- - lib/openapi_parser/schema_validators/nil_validator.rb
199
- - lib/openapi_parser/schema_validators/object_validator.rb
200
- - lib/openapi_parser/schema_validators/one_of_validator.rb
201
- - lib/openapi_parser/schema_validators/options.rb
202
- - lib/openapi_parser/schema_validators/string_validator.rb
203
- - lib/openapi_parser/schema_validators/unspecified_type_validator.rb
175
+ - lib/openapi_parser/schema_validator/all_of_validator.rb
176
+ - lib/openapi_parser/schema_validator/any_of_validator.rb
177
+ - lib/openapi_parser/schema_validator/array_validator.rb
178
+ - lib/openapi_parser/schema_validator/base.rb
179
+ - lib/openapi_parser/schema_validator/boolean_validator.rb
180
+ - lib/openapi_parser/schema_validator/enumable.rb
181
+ - lib/openapi_parser/schema_validator/float_validator.rb
182
+ - lib/openapi_parser/schema_validator/integer_validator.rb
183
+ - lib/openapi_parser/schema_validator/minimum_maximum.rb
184
+ - lib/openapi_parser/schema_validator/nil_validator.rb
185
+ - lib/openapi_parser/schema_validator/object_validator.rb
186
+ - lib/openapi_parser/schema_validator/one_of_validator.rb
187
+ - lib/openapi_parser/schema_validator/options.rb
188
+ - lib/openapi_parser/schema_validator/string_validator.rb
189
+ - lib/openapi_parser/schema_validator/unspecified_type_validator.rb
204
190
  - lib/openapi_parser/schemas.rb
205
191
  - lib/openapi_parser/schemas/base.rb
206
192
  - lib/openapi_parser/schemas/classes.rb
207
193
  - lib/openapi_parser/schemas/components.rb
208
194
  - lib/openapi_parser/schemas/discriminator.rb
209
195
  - lib/openapi_parser/schemas/header.rb
196
+ - lib/openapi_parser/schemas/info.rb
210
197
  - lib/openapi_parser/schemas/media_type.rb
211
198
  - lib/openapi_parser/schemas/openapi.rb
212
199
  - lib/openapi_parser/schemas/operation.rb
@@ -222,6 +209,8 @@ files:
222
209
  - openapi_parser.gemspec
223
210
  - sig/openapi_parser.rbs
224
211
  - sig/openapi_parser/config.rbs
212
+ - sig/openapi_parser/errors.rbs
213
+ - sig/openapi_parser/reference_expander.rbs
225
214
  - sig/openapi_parser/schema_validator.rbs
226
215
  - sig/openapi_parser/schema_validators/base.rbs
227
216
  - sig/openapi_parser/schema_validators/options.rbs
@@ -233,7 +222,7 @@ homepage: https://github.com/ota42y/openapi_parser
233
222
  licenses:
234
223
  - MIT
235
224
  metadata: {}
236
- post_install_message:
225
+ post_install_message:
237
226
  rdoc_options: []
238
227
  require_paths:
239
228
  - lib
@@ -241,15 +230,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
241
230
  requirements:
242
231
  - - ">="
243
232
  - !ruby/object:Gem::Version
244
- version: 2.6.0
233
+ version: 2.7.0
245
234
  required_rubygems_version: !ruby/object:Gem::Requirement
246
235
  requirements:
247
- - - ">"
236
+ - - ">="
248
237
  - !ruby/object:Gem::Version
249
- version: 1.3.1
238
+ version: '0'
250
239
  requirements: []
251
- rubygems_version: 3.2.32
252
- signing_key:
240
+ rubygems_version: 3.4.20
241
+ signing_key:
253
242
  specification_version: 4
254
243
  summary: OpenAPI3 parser
255
244
  test_files: []