jsapi 0.5.0 → 0.6.1
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 +39 -13
- data/lib/jsapi/controller/parameters.rb +25 -23
- data/lib/jsapi/controller/response.rb +35 -22
- data/lib/jsapi/dsl/class_methods.rb +18 -10
- data/lib/jsapi/dsl/definitions.rb +11 -0
- data/lib/jsapi/dsl/openapi/callbacks.rb +34 -0
- data/lib/jsapi/dsl/openapi/examples.rb +32 -0
- data/lib/jsapi/dsl/openapi.rb +2 -0
- data/lib/jsapi/dsl/operation.rb +1 -1
- data/lib/jsapi/dsl/parameter.rb +1 -1
- data/lib/jsapi/dsl/request_body.rb +1 -1
- data/lib/jsapi/dsl/response.rb +1 -1
- data/lib/jsapi/dsl.rb +1 -3
- data/lib/jsapi/helpers/invalid_value_helper.rb +17 -0
- data/lib/jsapi/invalid_argument_error.rb +12 -0
- data/lib/jsapi/invalid_value_error.rb +12 -0
- data/lib/jsapi/json/object.rb +15 -14
- data/lib/jsapi/json.rb +1 -1
- data/lib/jsapi/meta/{attributes/class_methods.rb → base/attributes.rb} +2 -2
- data/lib/jsapi/meta/base/model.rb +44 -0
- data/lib/jsapi/meta/base/reference.rb +36 -0
- data/lib/jsapi/meta/{attributes → base}/type_caster.rb +2 -2
- data/lib/jsapi/meta/base.rb +4 -40
- data/lib/jsapi/meta/callable/symbol_evaluator.rb +30 -0
- data/lib/jsapi/meta/callable/symbol_sequence_evaluator.rb +29 -0
- data/lib/jsapi/meta/callable.rb +28 -0
- data/lib/jsapi/meta/defaults.rb +28 -0
- data/lib/jsapi/meta/definitions.rb +35 -29
- data/lib/jsapi/meta/openapi/callback/model.rb +1 -1
- data/lib/jsapi/meta/openapi/callback/reference.rb +1 -1
- data/lib/jsapi/meta/openapi/contact.rb +1 -1
- data/lib/jsapi/meta/openapi/example/model.rb +1 -1
- data/lib/jsapi/meta/openapi/example/reference.rb +1 -1
- data/lib/jsapi/meta/openapi/external_documentation.rb +1 -1
- data/lib/jsapi/meta/openapi/header/model.rb +17 -2
- data/lib/jsapi/meta/openapi/header/reference.rb +1 -1
- data/lib/jsapi/meta/openapi/info.rb +1 -1
- data/lib/jsapi/meta/openapi/license.rb +1 -1
- data/lib/jsapi/meta/openapi/link/model.rb +1 -1
- data/lib/jsapi/meta/openapi/link/reference.rb +1 -1
- data/lib/jsapi/meta/openapi/oauth_flow.rb +2 -2
- data/lib/jsapi/meta/openapi/root.rb +6 -20
- data/lib/jsapi/meta/openapi/security_requirement.rb +2 -2
- data/lib/jsapi/meta/openapi/security_scheme/base.rb +1 -1
- data/lib/jsapi/meta/openapi/security_scheme.rb +1 -1
- data/lib/jsapi/meta/openapi/server.rb +1 -1
- data/lib/jsapi/meta/openapi/server_variable.rb +1 -1
- data/lib/jsapi/meta/openapi/tag.rb +1 -1
- data/lib/jsapi/meta/operation.rb +21 -24
- data/lib/jsapi/meta/parameter/model.rb +4 -3
- data/lib/jsapi/meta/parameter/reference.rb +1 -1
- data/lib/jsapi/meta/property.rb +9 -3
- data/lib/jsapi/meta/request_body/model.rb +8 -3
- data/lib/jsapi/meta/request_body/reference.rb +1 -1
- data/lib/jsapi/meta/response/model.rb +9 -4
- data/lib/jsapi/meta/response/reference.rb +1 -1
- data/lib/jsapi/meta/schema/additional_properties.rb +5 -6
- data/lib/jsapi/meta/schema/base.rb +13 -7
- data/lib/jsapi/meta/schema/discriminator.rb +1 -9
- data/lib/jsapi/meta/schema/object.rb +27 -4
- data/lib/jsapi/meta/schema/reference.rb +1 -1
- data/lib/jsapi/meta/schema.rb +12 -5
- data/lib/jsapi/meta.rb +3 -5
- data/lib/jsapi/model/attributes.rb +10 -4
- data/lib/jsapi/model/base.rb +1 -1
- data/lib/jsapi/model/nestable.rb +25 -10
- data/lib/jsapi/version.rb +1 -1
- data/lib/jsapi.rb +4 -0
- metadata +15 -11
- data/lib/jsapi/dsl/callbacks.rb +0 -32
- data/lib/jsapi/dsl/examples.rb +0 -30
- data/lib/jsapi/meta/attributes.rb +0 -4
- data/lib/jsapi/meta/base_reference.rb +0 -34
- data/lib/jsapi/meta/invalid_argument_error.rb +0 -12
- data/lib/jsapi/meta/method_chain.rb +0 -32
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.6.1
|
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-09-17 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
|
@@ -26,20 +26,23 @@ files:
|
|
26
26
|
- lib/jsapi/controller/parameters_invalid.rb
|
27
27
|
- lib/jsapi/controller/response.rb
|
28
28
|
- lib/jsapi/dsl.rb
|
29
|
-
- lib/jsapi/dsl/callbacks.rb
|
30
29
|
- lib/jsapi/dsl/class_methods.rb
|
31
30
|
- lib/jsapi/dsl/definitions.rb
|
32
31
|
- lib/jsapi/dsl/error.rb
|
33
|
-
- lib/jsapi/dsl/examples.rb
|
34
32
|
- lib/jsapi/dsl/node.rb
|
35
33
|
- lib/jsapi/dsl/openapi.rb
|
36
34
|
- lib/jsapi/dsl/openapi/callback.rb
|
35
|
+
- lib/jsapi/dsl/openapi/callbacks.rb
|
36
|
+
- lib/jsapi/dsl/openapi/examples.rb
|
37
37
|
- lib/jsapi/dsl/openapi/root.rb
|
38
38
|
- lib/jsapi/dsl/operation.rb
|
39
39
|
- lib/jsapi/dsl/parameter.rb
|
40
40
|
- lib/jsapi/dsl/request_body.rb
|
41
41
|
- lib/jsapi/dsl/response.rb
|
42
42
|
- lib/jsapi/dsl/schema.rb
|
43
|
+
- lib/jsapi/helpers/invalid_value_helper.rb
|
44
|
+
- lib/jsapi/invalid_argument_error.rb
|
45
|
+
- lib/jsapi/invalid_value_error.rb
|
43
46
|
- lib/jsapi/json.rb
|
44
47
|
- lib/jsapi/json/array.rb
|
45
48
|
- lib/jsapi/json/boolean.rb
|
@@ -50,15 +53,17 @@ files:
|
|
50
53
|
- lib/jsapi/json/string.rb
|
51
54
|
- lib/jsapi/json/value.rb
|
52
55
|
- lib/jsapi/meta.rb
|
53
|
-
- lib/jsapi/meta/attributes.rb
|
54
|
-
- lib/jsapi/meta/attributes/class_methods.rb
|
55
|
-
- lib/jsapi/meta/attributes/type_caster.rb
|
56
56
|
- lib/jsapi/meta/base.rb
|
57
|
-
- lib/jsapi/meta/
|
57
|
+
- lib/jsapi/meta/base/attributes.rb
|
58
|
+
- lib/jsapi/meta/base/model.rb
|
59
|
+
- lib/jsapi/meta/base/reference.rb
|
60
|
+
- lib/jsapi/meta/base/type_caster.rb
|
61
|
+
- lib/jsapi/meta/callable.rb
|
62
|
+
- lib/jsapi/meta/callable/symbol_evaluator.rb
|
63
|
+
- lib/jsapi/meta/callable/symbol_sequence_evaluator.rb
|
64
|
+
- lib/jsapi/meta/defaults.rb
|
58
65
|
- lib/jsapi/meta/definitions.rb
|
59
66
|
- lib/jsapi/meta/existence.rb
|
60
|
-
- lib/jsapi/meta/invalid_argument_error.rb
|
61
|
-
- lib/jsapi/meta/method_chain.rb
|
62
67
|
- lib/jsapi/meta/openapi.rb
|
63
68
|
- lib/jsapi/meta/openapi/callback.rb
|
64
69
|
- lib/jsapi/meta/openapi/callback/model.rb
|
@@ -147,7 +152,6 @@ licenses:
|
|
147
152
|
- MIT
|
148
153
|
metadata:
|
149
154
|
homepage_uri: https://github.com/dmgoeller/jsapi
|
150
|
-
source_code_uri: https://github.com/dmgoeller/jsapi
|
151
155
|
post_install_message:
|
152
156
|
rdoc_options: []
|
153
157
|
require_paths:
|
data/lib/jsapi/dsl/callbacks.rb
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jsapi
|
4
|
-
module DSL
|
5
|
-
module Callbacks
|
6
|
-
# Defines an \OpenAPI callback or refers a reusable callback.
|
7
|
-
#
|
8
|
-
# # define a callback
|
9
|
-
# callback 'foo' do
|
10
|
-
# operation '{$request.query.foo}'
|
11
|
-
# end
|
12
|
-
#
|
13
|
-
# # refer a reusable callback
|
14
|
-
# callback ref: 'foo'
|
15
|
-
#
|
16
|
-
# Refers the reusable callback with the same name if neither any
|
17
|
-
# keywords nor a block is specified.
|
18
|
-
#
|
19
|
-
# callback 'foo'
|
20
|
-
#
|
21
|
-
def callback(name = nil, **keywords, &block)
|
22
|
-
_define('callback', name&.inspect) do
|
23
|
-
name = keywords[:ref] if name.nil?
|
24
|
-
keywords = { ref: name } unless keywords.any? || block
|
25
|
-
|
26
|
-
callback_model = _meta_model.add_callback(name, keywords)
|
27
|
-
_eval(callback_model, OpenAPI::Callback, &block)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
data/lib/jsapi/dsl/examples.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jsapi
|
4
|
-
module DSL
|
5
|
-
module Examples
|
6
|
-
# Adds an example.
|
7
|
-
#
|
8
|
-
# example 'foo', value: 'bar'
|
9
|
-
#
|
10
|
-
# example 'foo'
|
11
|
-
#
|
12
|
-
# The default name is <code>'default'</code>.
|
13
|
-
def example(name_or_value = nil, **keywords, &block)
|
14
|
-
_define('example', name_or_value&.inspect) do
|
15
|
-
if keywords.any? || block
|
16
|
-
# example 'foo', value: 'bar', ...
|
17
|
-
name = name_or_value
|
18
|
-
else
|
19
|
-
# example 'foo'
|
20
|
-
name = nil
|
21
|
-
keywords = { value: name_or_value }
|
22
|
-
end
|
23
|
-
|
24
|
-
example = _meta_model.add_example(name, keywords)
|
25
|
-
Node.new(example, &block) if block
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jsapi
|
4
|
-
module Meta
|
5
|
-
# The base reference class.
|
6
|
-
class BaseReference < Base
|
7
|
-
##
|
8
|
-
# :attr: ref
|
9
|
-
# The name of the referred object.
|
10
|
-
attribute :ref, String
|
11
|
-
|
12
|
-
# Returns the name of the method to be invoked to look up the referred object
|
13
|
-
# in a Definitions instance.
|
14
|
-
def self.lookup_method_name
|
15
|
-
@lookup_method_name ||=
|
16
|
-
name.delete_suffix('::Reference').demodulize.underscore
|
17
|
-
end
|
18
|
-
|
19
|
-
def reference? # :nodoc:
|
20
|
-
true
|
21
|
-
end
|
22
|
-
|
23
|
-
# Resolves +ref+ by looking up the object with that name in +definitions+.
|
24
|
-
#
|
25
|
-
# Raises a ReferenceError if +ref+ could not be resolved.
|
26
|
-
def resolve(definitions)
|
27
|
-
object = definitions.send(self.class.lookup_method_name, ref)
|
28
|
-
raise ReferenceError, ref if object.nil?
|
29
|
-
|
30
|
-
object.resolve(definitions)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jsapi
|
4
|
-
module Meta
|
5
|
-
# Raised when an argument isn't contained in the list of valid values.
|
6
|
-
class InvalidArgumentError < ArgumentError
|
7
|
-
def initialize(name, value, values)
|
8
|
-
super("#{name} must be one of #{values.inspect}, is #{value.inspect}")
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Jsapi
|
4
|
-
module Meta
|
5
|
-
class MethodChain
|
6
|
-
# The methods to be called in chain.
|
7
|
-
attr_reader :methods
|
8
|
-
|
9
|
-
def initialize(methods)
|
10
|
-
@methods = Array.wrap(methods).flat_map do |method|
|
11
|
-
next method if method.is_a?(Symbol)
|
12
|
-
|
13
|
-
method.to_s.split('.')
|
14
|
-
end.map(&:to_sym)
|
15
|
-
end
|
16
|
-
|
17
|
-
def inspect # :nodoc:
|
18
|
-
"#<#{self.class.name} #{methods.inspect}>"
|
19
|
-
end
|
20
|
-
|
21
|
-
# Calls the chained methods on +object+.
|
22
|
-
def call(object)
|
23
|
-
return if methods.blank?
|
24
|
-
|
25
|
-
methods.each do |method|
|
26
|
-
object = object.public_send(method)
|
27
|
-
end
|
28
|
-
object
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|