jsapi 2.1.2 → 3.0

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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jsapi/client/base.rb +182 -0
  3. data/lib/jsapi/client/exceptions.rb +45 -0
  4. data/lib/jsapi/client/request.rb +204 -0
  5. data/lib/jsapi/client/response.rb +120 -0
  6. data/lib/jsapi/client/session/base.rb +61 -0
  7. data/lib/jsapi/client/session/logger.rb +52 -0
  8. data/lib/jsapi/client/session/single_request.rb +16 -0
  9. data/lib/jsapi/client/session/test/class_methods.rb +49 -0
  10. data/lib/jsapi/client/session/test/response.rb +56 -0
  11. data/lib/jsapi/client/session/test/spy.rb +43 -0
  12. data/lib/jsapi/client/session/test.rb +17 -0
  13. data/lib/jsapi/client/session.rb +6 -0
  14. data/lib/jsapi/client.rb +7 -0
  15. data/lib/jsapi/configuration.rb +2 -2
  16. data/lib/jsapi/controller/authentication/credentials/http/bearer.rb +5 -12
  17. data/lib/jsapi/controller/authentication/credentials.rb +4 -4
  18. data/lib/jsapi/controller/authentication.rb +3 -3
  19. data/lib/jsapi/controller/methods.rb +43 -77
  20. data/lib/jsapi/controller/parameters.rb +6 -6
  21. data/lib/jsapi/controller/response.rb +7 -7
  22. data/lib/jsapi/{meta/definitions.rb → definition/api.rb} +62 -40
  23. data/lib/jsapi/{meta → definition}/callable/symbol_evaluator.rb +1 -1
  24. data/lib/jsapi/{meta → definition}/callable/symbol_sequence_evaluator.rb +1 -1
  25. data/lib/jsapi/{meta → definition}/callable.rb +1 -1
  26. data/lib/jsapi/{meta → definition}/callback/base.rb +5 -5
  27. data/lib/jsapi/{meta → definition}/callback/reference.rb +1 -1
  28. data/lib/jsapi/{meta → definition}/callback.rb +1 -1
  29. data/lib/jsapi/{meta → definition}/contact.rb +1 -1
  30. data/lib/jsapi/{meta → definition}/content.rb +11 -11
  31. data/lib/jsapi/{meta → definition}/defaults.rb +1 -1
  32. data/lib/jsapi/{meta → definition}/example/base.rb +1 -1
  33. data/lib/jsapi/{meta → definition}/example/builder.rb +4 -4
  34. data/lib/jsapi/{meta → definition}/example/reference.rb +1 -1
  35. data/lib/jsapi/{meta → definition}/example.rb +1 -1
  36. data/lib/jsapi/{meta → definition}/existence.rb +1 -1
  37. data/lib/jsapi/{meta → definition}/external_documentation.rb +1 -1
  38. data/lib/jsapi/{meta → definition}/header/base.rb +1 -1
  39. data/lib/jsapi/{meta → definition}/header/reference.rb +1 -1
  40. data/lib/jsapi/{meta → definition}/header.rb +1 -1
  41. data/lib/jsapi/{meta → definition}/info.rb +1 -1
  42. data/lib/jsapi/{meta → definition}/license.rb +1 -1
  43. data/lib/jsapi/{meta → definition}/link/base.rb +1 -1
  44. data/lib/jsapi/{meta → definition}/link/reference.rb +1 -1
  45. data/lib/jsapi/{meta → definition}/link.rb +1 -1
  46. data/lib/jsapi/{meta → definition}/model/attributes/class_methods.rb +1 -1
  47. data/lib/jsapi/{meta → definition}/model/attributes/frozen_error.rb +1 -1
  48. data/lib/jsapi/{meta → definition}/model/attributes/type_caster.rb +2 -2
  49. data/lib/jsapi/{meta → definition}/model/attributes.rb +1 -1
  50. data/lib/jsapi/{meta → definition}/model/base.rb +1 -1
  51. data/lib/jsapi/{meta → definition}/model/reference.rb +11 -11
  52. data/lib/jsapi/{meta → definition}/model/wrappable.rb +3 -3
  53. data/lib/jsapi/{meta → definition}/model/wrapper.rb +5 -5
  54. data/lib/jsapi/{meta → definition}/oauth_flow.rb +1 -1
  55. data/lib/jsapi/{meta → definition}/openapi/extensions.rb +1 -1
  56. data/lib/jsapi/{meta → definition}/openapi/path_item.rb +5 -5
  57. data/lib/jsapi/{meta → definition}/openapi/version.rb +2 -2
  58. data/lib/jsapi/{meta → definition}/openapi.rb +1 -1
  59. data/lib/jsapi/{meta → definition}/operation.rb +108 -62
  60. data/lib/jsapi/{meta → definition}/parameter/base.rb +11 -11
  61. data/lib/jsapi/{meta → definition}/parameter/reference.rb +5 -5
  62. data/lib/jsapi/{meta → definition}/parameter/wrapper.rb +2 -2
  63. data/lib/jsapi/{meta → definition}/parameter.rb +1 -1
  64. data/lib/jsapi/{meta → definition}/path.rb +1 -1
  65. data/lib/jsapi/{meta → definition}/pathname.rb +1 -1
  66. data/lib/jsapi/{meta → definition}/property.rb +2 -2
  67. data/lib/jsapi/{meta → definition}/reference_error.rb +1 -1
  68. data/lib/jsapi/{meta → definition}/request_body/base.rb +1 -1
  69. data/lib/jsapi/{meta → definition}/request_body/reference.rb +1 -1
  70. data/lib/jsapi/{meta → definition}/request_body/wrapper.rb +2 -2
  71. data/lib/jsapi/{meta → definition}/request_body.rb +1 -1
  72. data/lib/jsapi/{meta → definition}/rescue_handler.rb +1 -1
  73. data/lib/jsapi/{meta → definition}/response/base.rb +4 -4
  74. data/lib/jsapi/{meta → definition}/response/reference.rb +1 -1
  75. data/lib/jsapi/{meta → definition}/response/wrapper.rb +17 -5
  76. data/lib/jsapi/{meta → definition}/response.rb +1 -1
  77. data/lib/jsapi/{meta → definition}/schema/additional_properties.rb +2 -2
  78. data/lib/jsapi/{meta → definition}/schema/array.rb +2 -2
  79. data/lib/jsapi/{meta → definition}/schema/base.rb +1 -1
  80. data/lib/jsapi/{meta → definition}/schema/boolean.rb +1 -1
  81. data/lib/jsapi/{meta → definition}/schema/boundary.rb +1 -1
  82. data/lib/jsapi/{meta → definition}/schema/conversion.rb +1 -1
  83. data/lib/jsapi/{meta → definition}/schema/discriminator.rb +1 -1
  84. data/lib/jsapi/{meta → definition}/schema/integer.rb +1 -1
  85. data/lib/jsapi/{meta → definition}/schema/number.rb +1 -1
  86. data/lib/jsapi/{meta → definition}/schema/numeric.rb +1 -1
  87. data/lib/jsapi/{meta → definition}/schema/object.rb +13 -13
  88. data/lib/jsapi/{meta → definition}/schema/reference.rb +1 -1
  89. data/lib/jsapi/{meta → definition}/schema/string.rb +1 -1
  90. data/lib/jsapi/{meta → definition}/schema/validation/base.rb +1 -1
  91. data/lib/jsapi/{meta → definition}/schema/validation/enum.rb +1 -1
  92. data/lib/jsapi/{meta → definition}/schema/validation/max_items.rb +1 -1
  93. data/lib/jsapi/{meta → definition}/schema/validation/max_length.rb +1 -1
  94. data/lib/jsapi/{meta → definition}/schema/validation/maximum.rb +1 -1
  95. data/lib/jsapi/{meta → definition}/schema/validation/min_items.rb +1 -1
  96. data/lib/jsapi/{meta → definition}/schema/validation/min_length.rb +1 -1
  97. data/lib/jsapi/{meta → definition}/schema/validation/minimum.rb +1 -1
  98. data/lib/jsapi/{meta → definition}/schema/validation/multiple_of.rb +1 -1
  99. data/lib/jsapi/{meta → definition}/schema/validation/pattern.rb +1 -1
  100. data/lib/jsapi/{meta → definition}/schema/wrapper.rb +18 -4
  101. data/lib/jsapi/{meta → definition}/schema.rb +5 -5
  102. data/lib/jsapi/{meta → definition}/security_requirement.rb +1 -1
  103. data/lib/jsapi/{meta → definition}/security_scheme/api_key.rb +1 -1
  104. data/lib/jsapi/{meta → definition}/security_scheme/base.rb +1 -1
  105. data/lib/jsapi/{meta → definition}/security_scheme/http/basic.rb +1 -1
  106. data/lib/jsapi/{meta → definition}/security_scheme/http/bearer.rb +1 -1
  107. data/lib/jsapi/{meta → definition}/security_scheme/http/other.rb +1 -1
  108. data/lib/jsapi/{meta → definition}/security_scheme/http.rb +1 -1
  109. data/lib/jsapi/{meta → definition}/security_scheme/mutual_tls.rb +1 -1
  110. data/lib/jsapi/{meta → definition}/security_scheme/oauth2.rb +1 -1
  111. data/lib/jsapi/{meta → definition}/security_scheme/open_id_connect.rb +1 -1
  112. data/lib/jsapi/{meta → definition}/security_scheme.rb +1 -1
  113. data/lib/jsapi/{meta → definition}/server.rb +24 -1
  114. data/lib/jsapi/{meta → definition}/server_variable.rb +1 -1
  115. data/lib/jsapi/{meta → definition}/tag.rb +1 -1
  116. data/lib/jsapi/definition.rb +33 -0
  117. data/lib/jsapi/dsl/{definitions.rb → api.rb} +48 -48
  118. data/lib/jsapi/dsl/base.rb +7 -7
  119. data/lib/jsapi/dsl/class_methods.rb +34 -32
  120. data/lib/jsapi/dsl/examples.rb +1 -1
  121. data/lib/jsapi/dsl/operation.rb +9 -7
  122. data/lib/jsapi/dsl/parameter.rb +1 -1
  123. data/lib/jsapi/dsl/path.rb +8 -6
  124. data/lib/jsapi/dsl/response.rb +5 -5
  125. data/lib/jsapi/dsl/schema.rb +17 -17
  126. data/lib/jsapi/dsl/shared_operation_methods.rb +11 -26
  127. data/lib/jsapi/dsl.rb +2 -2
  128. data/lib/jsapi/model/errors.rb +3 -3
  129. data/lib/jsapi/status/code.rb +20 -0
  130. data/lib/jsapi/support/messages.rb +27 -0
  131. data/lib/jsapi/support.rb +3 -0
  132. data/lib/jsapi/version.rb +1 -1
  133. data/lib/jsapi.rb +3 -3
  134. metadata +115 -102
  135. data/lib/jsapi/jsonify_error.rb +0 -17
  136. data/lib/jsapi/messages.rb +0 -19
  137. data/lib/jsapi/meta.rb +0 -38
  138. /data/lib/jsapi/{meta → definition}/model.rb +0 -0
  139. /data/lib/jsapi/{meta → definition}/schema/validation.rb +0 -0
@@ -5,7 +5,7 @@ require_relative 'request_body/reference'
5
5
  require_relative 'request_body/wrapper'
6
6
 
7
7
  module Jsapi
8
- module Meta
8
+ module Definition
9
9
  module RequestBody
10
10
  include Model::Wrappable
11
11
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  # Specifies a rescue handler.
6
6
  class RescueHandler < Model::Base
7
7
  ##
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Response
6
6
  # Specifies a response.
7
7
  class Base < Model::Base
@@ -98,13 +98,13 @@ module Jsapi
98
98
  end
99
99
 
100
100
  # Returns a hash representing the \OpenAPI response object.
101
- def to_openapi(version, definitions)
101
+ def to_openapi(version, api)
102
102
  version = OpenAPI::Version.from(version)
103
103
 
104
104
  with_openapi_extensions(
105
105
  if version == OpenAPI::V2_0
106
106
  media_type, content = contents.first
107
- example = content&.example_data_value(definitions, locale: locale)
107
+ example = content&.example_data_value(api, locale: locale)
108
108
  {
109
109
  description: description,
110
110
  schema: content&.schema&.to_openapi(version),
@@ -131,7 +131,7 @@ module Jsapi
131
131
  nth_media_type,
132
132
  nth_content.to_openapi(
133
133
  version,
134
- definitions,
134
+ api,
135
135
  locale: locale,
136
136
  media_type: nth_media_type
137
137
  )
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Response
6
6
  # Refers a reusable response.
7
7
  class Reference < Model::Reference
@@ -1,26 +1,38 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Response
6
6
  class Wrapper < Model::Wrapper
7
7
  # The locale of the wrapped response or reference.
8
8
  attr_reader :locale
9
9
 
10
- def initialize(response, definitions)
11
- @locale = response.resolve_lazily(definitions).locale
10
+ def initialize(response, api)
11
+ @locale = response.resolve_lazily(api).locale
12
12
  super
13
13
  end
14
14
 
15
+ def content?
16
+ contents.lazy.any?
17
+ end
18
+
15
19
  def contents
16
- super.transform_values { |content| Content.wrap(content, definitions) }
20
+ super.transform_values { |content| Content.wrap(content, api) }
21
+ end
22
+
23
+ def content_for(*media_ranges)
24
+ media_type_and_content_for(*media_ranges)&.second
25
+ end
26
+
27
+ def header_for(name)
28
+ (@downcased_headers ||= headers.transform_keys(&:downcase))[name.to_s.downcase]
17
29
  end
18
30
 
19
31
  def media_type_and_content_for(*media_ranges)
20
32
  super&.then do |media_type_and_content|
21
33
  [
22
34
  media_type_and_content.first,
23
- Content.wrap(media_type_and_content.second, definitions)
35
+ Content.wrap(media_type_and_content.second, api)
24
36
  ]
25
37
  end
26
38
  end
@@ -5,7 +5,7 @@ require_relative 'response/reference'
5
5
  require_relative 'response/wrapper'
6
6
 
7
7
  module Jsapi
8
- module Meta
8
+ module Definition
9
9
  module Response
10
10
  include Model::Wrappable
11
11
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class AdditionalProperties < Model::Base
7
7
  include Model::Wrappable
@@ -29,7 +29,7 @@ module Jsapi
29
29
 
30
30
  class Wrapper < Model::Wrapper
31
31
  def schema
32
- @schema ||= Schema.wrap(super, definitions)
32
+ @schema ||= Schema.wrap(super, api)
33
33
  end
34
34
  end
35
35
  end
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Array < Base
7
7
  class Wrapper < Schema::Wrapper
8
8
  def items
9
- @items ||= Schema.wrap(super, definitions)
9
+ @items ||= Schema.wrap(super, api)
10
10
  end
11
11
 
12
12
  private
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  TYPES = %w[array boolean integer number object string].freeze # :nodoc:
7
7
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Boolean < Base
7
7
  class Wrapper < Schema::Wrapper
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Boundary
7
7
  # Transforms +value+ to an instance of this class.
@@ -3,7 +3,7 @@
3
3
  require 'active_support/concern'
4
4
 
5
5
  module Jsapi
6
- module Meta
6
+ module Definition
7
7
  module Schema
8
8
  module Conversion
9
9
  def self.included(base) # :nodoc:
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Discriminator < Model::Base
7
7
  include OpenAPI::Extensions
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Integer < Numeric
7
7
  class Wrapper < Schema::Wrapper
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Number < Numeric
7
7
  class Wrapper < Schema::Wrapper
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Numeric < Base
7
7
  include Conversion
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class Object < Base
7
7
  class Wrapper < Schema::Wrapper
@@ -33,12 +33,12 @@ module Jsapi
33
33
  end
34
34
 
35
35
  def additional_properties
36
- AdditionalProperties.wrap(super, definitions)
36
+ AdditionalProperties.wrap(super, api)
37
37
  end
38
38
 
39
39
  def resolve_properties(context: nil)
40
- super(definitions, context: context).transform_values do |property|
41
- Property.wrap(property, definitions)
40
+ super(api, context: context).transform_values do |property|
41
+ Property.wrap(property, api)
42
42
  end
43
43
  end
44
44
 
@@ -52,7 +52,7 @@ module Jsapi
52
52
 
53
53
  discriminating_property = properties[discriminator.property_name]
54
54
  if discriminating_property.nil?
55
- raise Messages.invalid_value(
55
+ raise Support::Messages.invalid_value(
56
56
  name: 'discriminator property',
57
57
  value: discriminator.property_name,
58
58
  valid_values: properties.keys
@@ -70,10 +70,10 @@ module Jsapi
70
70
 
71
71
  schema_name = discriminator.mapping(discriminating_value) || discriminating_value
72
72
 
73
- schema = definitions.find_schema(schema_name)
73
+ schema = api.find_schema(schema_name)
74
74
  if schema.nil?
75
75
  default_mapping = discriminator.default_mapping
76
- schema = definitions.find_schema(default_mapping) unless default_mapping.nil?
76
+ schema = api.find_schema(default_mapping) unless default_mapping.nil?
77
77
 
78
78
  if schema.nil?
79
79
  raise "inheriting schema couldn't be found: " \
@@ -82,7 +82,7 @@ module Jsapi
82
82
  end
83
83
 
84
84
  Wrapper
85
- .new(schema.resolve(definitions), definitions)
85
+ .new(schema.resolve(api), api)
86
86
  .resolve_schema(object, context: context)
87
87
  end
88
88
 
@@ -168,8 +168,8 @@ module Jsapi
168
168
  end
169
169
  end
170
170
 
171
- def resolve_properties(definitions, context: nil)
172
- properties = merge_properties(definitions, [])
171
+ def resolve_properties(api, context: nil)
172
+ properties = merge_properties(api, [])
173
173
 
174
174
  case context
175
175
  when :response
@@ -206,15 +206,15 @@ module Jsapi
206
206
 
207
207
  protected
208
208
 
209
- def merge_properties(definitions, path)
209
+ def merge_properties(api, path)
210
210
  return properties unless all_of_references.present?
211
211
 
212
212
  {}.tap do |properties|
213
213
  all_of_references.each do |reference|
214
- schema = reference.resolve(definitions)
214
+ schema = reference.resolve(api)
215
215
  raise "circular reference: #{reference.ref}" if schema.in?(path)
216
216
 
217
- properties.merge!(schema.merge_properties(definitions, path + [self]))
217
+ properties.merge!(schema.merge_properties(api, path + [self]))
218
218
  end
219
219
  properties.merge!(self.properties)
220
220
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  # Refers a reusable schema.
7
7
  class Reference < Model::Reference
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  class String < Base
7
7
  include Conversion
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class Enum < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class MaxItems < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class MaxLength < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class Maximum < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class MinItems < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class MinLength < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class Minimum < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class MultipleOf < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
6
  module Validation
7
7
  class Pattern < Base
@@ -1,18 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module Schema
6
+ # Raised when jsonifying an object fails.
7
+ class JsonifyError < RuntimeError
8
+ attr_reader :path # :nodoc:
9
+
10
+ def message
11
+ [@path&.delete_prefix('.'), super].compact.join(' ')
12
+ end
13
+
14
+ def prepend(origin) # :nodoc:
15
+ @path = "#{origin}#{@path}"
16
+ self
17
+ end
18
+ end
19
+
6
20
  class Wrapper < Model::Wrapper
7
21
  # The level of existence.
8
22
  attr_reader :existence
9
23
 
10
- def initialize(schema, definitions)
24
+ def initialize(schema, api)
11
25
  @existence =
12
26
  [schema.existence].tap do |levels|
13
27
  s = schema
14
28
  while s.is_a?(Reference)
15
- s = s.resolve(definitions, deep: false)
29
+ s = s.resolve(api, deep: false)
16
30
  levels << s.existence
17
31
  end
18
32
  end.compact.max || Existence::ALLOW_OMITTED
@@ -23,7 +37,7 @@ module Jsapi
23
37
  def default_value(context: nil)
24
38
  return default unless default.nil?
25
39
 
26
- definitions.default_value(type, context: context)
40
+ api.default_value(type, context: context)
27
41
  end
28
42
 
29
43
  # Generates a JSON value representing +value+.
@@ -18,7 +18,7 @@ require_relative 'schema/object'
18
18
  require_relative 'schema/string'
19
19
 
20
20
  module Jsapi
21
- module Meta
21
+ module Definition
22
22
  module Schema
23
23
  class << self
24
24
  # Creates a new schema. The +:type+ keyword determines the type of the schema to be
@@ -52,7 +52,7 @@ module Jsapi
52
52
  when 'string'
53
53
  String
54
54
  else
55
- raise ArgumentError, Messages.invalid_value(
55
+ raise ArgumentError, Support::Messages.invalid_value(
56
56
  name: 'type',
57
57
  value: type,
58
58
  valid_values: TYPES
@@ -61,13 +61,13 @@ module Jsapi
61
61
  end
62
62
 
63
63
  # Wraps +schema+.
64
- def wrap(schema, definitions)
64
+ def wrap(schema, api)
65
65
  return if schema.nil?
66
66
  return schema if schema.is_a?(Wrapper)
67
67
 
68
- "#{schema.resolve(definitions).class.name}::Wrapper"
68
+ "#{schema.resolve(api).class.name}::Wrapper"
69
69
  .constantize
70
- .new(schema, definitions)
70
+ .new(schema, api)
71
71
  end
72
72
  end
73
73
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  # Specifies a security requirement.
6
6
  class SecurityRequirement < Model::Base
7
7
  class Scheme < Model::Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  # Specifies a security scheme based on an API key.
7
7
  class APIKey < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  class Base < Model::Base
7
7
  ##
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  module HTTP
7
7
  # Specifies a security scheme based on \HTTP basic authentication.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  module HTTP
7
7
  # Specifies a security scheme based on bearer authentication.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  module HTTP
7
7
  # Specifies a security scheme based on any other \HTTP authentication than basic
@@ -5,7 +5,7 @@ require_relative 'http/bearer'
5
5
  require_relative 'http/other'
6
6
 
7
7
  module Jsapi
8
- module Meta
8
+ module Definition
9
9
  module SecurityScheme
10
10
  module HTTP
11
11
  class << self
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  # Specifies a security scheme based on MutualTLS.
7
7
  class MutualTLS < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  # Specifies a security scheme based on \OAuth2.
7
7
  class OAuth2 < Base
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Jsapi
4
- module Meta
4
+ module Definition
5
5
  module SecurityScheme
6
6
  # Specifies a security scheme based on OpenID Connect.
7
7
  class OpenIDConnect < Base
@@ -8,7 +8,7 @@ require_relative 'security_scheme/oauth2'
8
8
  require_relative 'security_scheme/open_id_connect'
9
9
 
10
10
  module Jsapi
11
- module Meta
11
+ module Definition
12
12
  module SecurityScheme
13
13
  class << self
14
14
  # Creates a security scheme. The +:type+ keyword specifies the type