jsapi 0.1.2 → 0.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.
- checksums.yaml +4 -4
- data/lib/jsapi/controller/methods.rb +4 -3
- data/lib/jsapi/controller/parameters.rb +2 -5
- data/lib/jsapi/controller/response.rb +48 -24
- data/lib/jsapi/dsl/parameter.rb +0 -10
- data/lib/jsapi/dsl/request_body.rb +0 -10
- data/lib/jsapi/dsl/response.rb +0 -10
- data/lib/jsapi/dsl/schema.rb +1 -1
- data/lib/jsapi/json/array.rb +2 -3
- data/lib/jsapi/json/null.rb +2 -2
- data/lib/jsapi/json/object.rb +6 -9
- data/lib/jsapi/json/string.rb +25 -11
- data/lib/jsapi/json/value.rb +4 -4
- data/lib/jsapi/meta/example/model.rb +3 -4
- data/lib/jsapi/meta/openapi/contact.rb +3 -5
- data/lib/jsapi/meta/openapi/extensions.rb +31 -0
- data/lib/jsapi/meta/openapi/external_documentation.rb +3 -4
- data/lib/jsapi/meta/openapi/info.rb +4 -2
- data/lib/jsapi/meta/openapi/license.rb +3 -4
- data/lib/jsapi/meta/openapi/link/model.rb +4 -2
- data/lib/jsapi/meta/openapi/oauth_flow.rb +4 -2
- data/lib/jsapi/meta/openapi/root.rb +36 -31
- data/lib/jsapi/meta/openapi/security_scheme/api_key.rb +4 -2
- data/lib/jsapi/meta/openapi/security_scheme/http/basic.rb +17 -12
- data/lib/jsapi/meta/openapi/security_scheme/http/bearer.rb +4 -2
- data/lib/jsapi/meta/openapi/security_scheme/http/other.rb +4 -2
- data/lib/jsapi/meta/openapi/security_scheme/oauth2.rb +5 -5
- data/lib/jsapi/meta/openapi/security_scheme/open_id_connect.rb +4 -2
- data/lib/jsapi/meta/openapi/server.rb +4 -2
- data/lib/jsapi/meta/openapi/server_variable.rb +4 -2
- data/lib/jsapi/meta/openapi/tag.rb +4 -2
- data/lib/jsapi/meta/openapi.rb +1 -0
- data/lib/jsapi/meta/operation.rb +6 -3
- data/lib/jsapi/meta/parameter/model.rb +56 -48
- data/lib/jsapi/meta/property.rb +3 -1
- data/lib/jsapi/meta/request_body/model.rb +6 -3
- data/lib/jsapi/meta/response/model.rb +28 -22
- data/lib/jsapi/meta/schema/additional_properties.rb +29 -0
- data/lib/jsapi/meta/schema/array.rb +9 -1
- data/lib/jsapi/meta/schema/base.rb +34 -29
- data/lib/jsapi/meta/schema/object.rb +10 -2
- data/lib/jsapi/meta/schema/reference.rb +0 -3
- data/lib/jsapi/meta/schema/string.rb +2 -6
- data/lib/jsapi/meta/schema.rb +3 -4
- data/lib/jsapi/version.rb +3 -3
- metadata +4 -2
@@ -4,15 +4,21 @@ module Jsapi
|
|
4
4
|
module Meta
|
5
5
|
module Schema
|
6
6
|
class Object < Base
|
7
|
+
##
|
8
|
+
# :attr: additional_properties
|
9
|
+
# The AdditionalProperties.
|
10
|
+
attribute :additional_properties, AdditionalProperties
|
11
|
+
|
7
12
|
##
|
8
13
|
# :attr: all_of_references
|
9
14
|
attribute :all_of_references, [Reference], default: []
|
10
15
|
|
11
|
-
alias :all_of= :all_of_references=
|
16
|
+
alias :all_of= :all_of_references= # :nodoc:
|
12
17
|
alias :add_all_of :add_all_of_reference
|
13
18
|
|
14
19
|
##
|
15
20
|
# :attr: discriminator
|
21
|
+
# The Discriminator.
|
16
22
|
attribute :discriminator, Discriminator
|
17
23
|
|
18
24
|
##
|
@@ -47,6 +53,7 @@ module Jsapi
|
|
47
53
|
super.merge(
|
48
54
|
allOf: all_of_references.map(&:to_json_schema).presence,
|
49
55
|
properties: properties.transform_values(&:to_json_schema),
|
56
|
+
additionalProperties: additional_properties&.to_json_schema,
|
50
57
|
required: properties.values.select(&:required?).map(&:name)
|
51
58
|
).compact
|
52
59
|
end
|
@@ -60,6 +67,7 @@ module Jsapi
|
|
60
67
|
properties: properties.transform_values do |property|
|
61
68
|
property.to_openapi(version)
|
62
69
|
end,
|
70
|
+
additionalProperties: additional_properties&.to_openapi(version),
|
63
71
|
required: properties.values.select(&:required?).map(&:name)
|
64
72
|
).compact
|
65
73
|
end
|
@@ -72,7 +80,7 @@ module Jsapi
|
|
72
80
|
{}.tap do |properties|
|
73
81
|
all_of_references.each do |reference|
|
74
82
|
schema = reference.resolve(definitions)
|
75
|
-
raise "circular reference: #{reference.
|
83
|
+
raise "circular reference: #{reference.ref}" if schema.in?(path)
|
76
84
|
|
77
85
|
properties.merge!(schema.merge_properties(definitions, path + [self]))
|
78
86
|
end
|
@@ -8,12 +8,8 @@ module Jsapi
|
|
8
8
|
|
9
9
|
##
|
10
10
|
# :attr: format
|
11
|
-
# The format of a string.
|
12
|
-
|
13
|
-
# - <code>"date"</code>
|
14
|
-
# - <code>"date-time"</code>
|
15
|
-
#
|
16
|
-
attribute :format, ::String, values: %w[date date-time]
|
11
|
+
# The format of a string.
|
12
|
+
attribute :format, ::String
|
17
13
|
|
18
14
|
##
|
19
15
|
# :attr: max_length
|
data/lib/jsapi/meta/schema.rb
CHANGED
@@ -4,13 +4,14 @@ require_relative 'schema/conversion'
|
|
4
4
|
require_relative 'schema/boundary'
|
5
5
|
require_relative 'schema/delegator'
|
6
6
|
require_relative 'schema/reference'
|
7
|
-
require_relative 'schema/discriminator'
|
8
7
|
require_relative 'schema/base'
|
9
8
|
require_relative 'schema/boolean'
|
10
9
|
require_relative 'schema/array'
|
11
10
|
require_relative 'schema/numeric'
|
12
11
|
require_relative 'schema/integer'
|
13
12
|
require_relative 'schema/number'
|
13
|
+
require_relative 'schema/additional_properties'
|
14
|
+
require_relative 'schema/discriminator'
|
14
15
|
require_relative 'schema/object'
|
15
16
|
require_relative 'schema/string'
|
16
17
|
require_relative 'schema/validation'
|
@@ -33,9 +34,7 @@ module Jsapi
|
|
33
34
|
#
|
34
35
|
# Raises an InvalidArgumentError if the given type is invalid.
|
35
36
|
def new(keywords = {})
|
36
|
-
|
37
|
-
return Reference.new(keywords)
|
38
|
-
end
|
37
|
+
return Reference.new(keywords) if keywords.key?(:ref)
|
39
38
|
|
40
39
|
type = keywords[:type]
|
41
40
|
case type&.to_s
|
data/lib/jsapi/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Göller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Jsapi can be used to read requests, produce responses and create OpenAPI
|
14
14
|
documents
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- lib/jsapi/meta/openapi/callback/model.rb
|
67
67
|
- lib/jsapi/meta/openapi/callback/reference.rb
|
68
68
|
- lib/jsapi/meta/openapi/contact.rb
|
69
|
+
- lib/jsapi/meta/openapi/extensions.rb
|
69
70
|
- lib/jsapi/meta/openapi/external_documentation.rb
|
70
71
|
- lib/jsapi/meta/openapi/info.rb
|
71
72
|
- lib/jsapi/meta/openapi/license.rb
|
@@ -102,6 +103,7 @@ files:
|
|
102
103
|
- lib/jsapi/meta/response/model.rb
|
103
104
|
- lib/jsapi/meta/response/reference.rb
|
104
105
|
- lib/jsapi/meta/schema.rb
|
106
|
+
- lib/jsapi/meta/schema/additional_properties.rb
|
105
107
|
- lib/jsapi/meta/schema/array.rb
|
106
108
|
- lib/jsapi/meta/schema/base.rb
|
107
109
|
- lib/jsapi/meta/schema/boolean.rb
|