jsapi 0.1.1 → 0.1.2
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/error_result.rb +1 -2
- data/lib/jsapi/controller/methods.rb +16 -19
- data/lib/jsapi/controller/parameters.rb +7 -8
- data/lib/jsapi/controller/parameters_invalid.rb +1 -2
- data/lib/jsapi/controller/response.rb +2 -2
- data/lib/jsapi/dsl/callbacks.rb +1 -1
- data/lib/jsapi/dsl/definitions.rb +3 -3
- data/lib/jsapi/dsl/error.rb +3 -5
- data/lib/jsapi/dsl/examples.rb +1 -1
- data/lib/jsapi/dsl/openapi/callback.rb +1 -1
- data/lib/jsapi/dsl/openapi/root.rb +115 -1
- data/lib/jsapi/dsl/operation.rb +50 -11
- data/lib/jsapi/dsl/parameter.rb +29 -0
- data/lib/jsapi/dsl/request_body.rb +22 -0
- data/lib/jsapi/dsl/response.rb +29 -0
- data/lib/jsapi/dsl/schema.rb +139 -13
- data/lib/jsapi/json/value.rb +2 -2
- data/lib/jsapi/meta/attributes/type_caster.rb +3 -2
- data/lib/jsapi/meta/base.rb +3 -2
- data/lib/jsapi/meta/base_reference.rb +3 -2
- data/lib/jsapi/meta/definitions.rb +2 -1
- data/lib/jsapi/meta/example/model.rb +1 -2
- data/lib/jsapi/meta/example/reference.rb +0 -1
- data/lib/jsapi/meta/invalid_argument_error.rb +1 -0
- data/lib/jsapi/meta/openapi/callback/model.rb +1 -1
- data/lib/jsapi/meta/openapi/root.rb +4 -5
- data/lib/jsapi/meta/openapi/security_scheme/oauth2.rb +1 -2
- data/lib/jsapi/meta/openapi/security_scheme/open_id_connect.rb +2 -3
- data/lib/jsapi/meta/openapi/security_scheme.rb +2 -2
- data/lib/jsapi/meta/openapi/version.rb +3 -0
- data/lib/jsapi/meta/operation.rb +15 -24
- data/lib/jsapi/meta/parameter/model.rb +2 -2
- data/lib/jsapi/meta/parameter/reference.rb +3 -4
- data/lib/jsapi/meta/property.rb +3 -4
- data/lib/jsapi/meta/request_body/model.rb +1 -1
- data/lib/jsapi/meta/rescue_handler.rb +7 -0
- data/lib/jsapi/meta/response/model.rb +1 -1
- data/lib/jsapi/meta/schema/base.rb +7 -9
- data/lib/jsapi/meta/schema/reference.rb +1 -2
- data/lib/jsapi/meta/schema/string.rb +1 -1
- data/lib/jsapi/meta/schema/validation/maximum.rb +6 -2
- data/lib/jsapi/meta/schema/validation/minimum.rb +6 -2
- data/lib/jsapi/meta/schema/validation/multiple_of.rb +3 -1
- data/lib/jsapi/model/base.rb +2 -2
- data/lib/jsapi/model/errors.rb +3 -4
- data/lib/jsapi/model/naming.rb +3 -4
- data/lib/jsapi/model/validations.rb +2 -2
- data/lib/jsapi/version.rb +5 -3
- metadata +5 -3
@@ -9,9 +9,13 @@ module Jsapi
|
|
9
9
|
|
10
10
|
def initialize(value, exclusive: false)
|
11
11
|
if exclusive
|
12
|
-
|
12
|
+
unless value.respond_to?(:<)
|
13
|
+
raise ArgumentError, "invalid exclusive maximum: #{value.inspect}"
|
14
|
+
end
|
13
15
|
else
|
14
|
-
|
16
|
+
unless value.respond_to?(:<=)
|
17
|
+
raise ArgumentError, "invalid maximum: #{value.inspect}"
|
18
|
+
end
|
15
19
|
end
|
16
20
|
|
17
21
|
super(value)
|
@@ -9,9 +9,13 @@ module Jsapi
|
|
9
9
|
|
10
10
|
def initialize(value, exclusive: false)
|
11
11
|
if exclusive
|
12
|
-
|
12
|
+
unless value.respond_to?(:>)
|
13
|
+
raise ArgumentError, "invalid exclusive minimum: #{value.inspect}"
|
14
|
+
end
|
13
15
|
else
|
14
|
-
|
16
|
+
unless value.respond_to?(:>=)
|
17
|
+
raise ArgumentError, "invalid minimum: #{value.inspect}"
|
18
|
+
end
|
15
19
|
end
|
16
20
|
|
17
21
|
super(value)
|
@@ -6,7 +6,9 @@ module Jsapi
|
|
6
6
|
module Validation
|
7
7
|
class MultipleOf < Base
|
8
8
|
def initialize(value)
|
9
|
-
|
9
|
+
unless value.respond_to?(:%)
|
10
|
+
raise ArgumentError, "invalid multiple of: #{value.inspect}"
|
11
|
+
end
|
10
12
|
|
11
13
|
super
|
12
14
|
end
|
data/lib/jsapi/model/base.rb
CHANGED
@@ -2,8 +2,8 @@
|
|
2
2
|
|
3
3
|
module Jsapi
|
4
4
|
module Model
|
5
|
-
# The base API model used to represent top-level parameters and nested
|
6
|
-
#
|
5
|
+
# The base API model used to represent top-level parameters and nested object
|
6
|
+
# parameters by default.
|
7
7
|
class Base
|
8
8
|
extend Naming
|
9
9
|
|
data/lib/jsapi/model/errors.rb
CHANGED
@@ -9,16 +9,15 @@ module Jsapi
|
|
9
9
|
super
|
10
10
|
end
|
11
11
|
|
12
|
-
# Overrides <code>ActiveModel::Errors#add</code> to wrap errors related
|
13
|
-
# to nested models.
|
12
|
+
# Overrides <code>ActiveModel::Errors#add</code> to wrap errors related to nested models.
|
14
13
|
def add(attribute, type = :invalid, **options)
|
15
14
|
type = type.call(@base, options) if type.respond_to?(:call)
|
16
15
|
|
17
16
|
errors << wrap(Error.new(@base, attribute.to_sym, type, **options))
|
18
17
|
end
|
19
18
|
|
20
|
-
# Overrides <code>ActiveModel::Errors#import</code> to wrap errors
|
21
|
-
#
|
19
|
+
# Overrides <code>ActiveModel::Errors#import</code> to wrap errors related to
|
20
|
+
# nested models.
|
22
21
|
def import(error, options = {})
|
23
22
|
if (options = options.slice(:attribute, :type)).any?
|
24
23
|
attribute = (options[:attribute] || error.attribute).to_sym
|
data/lib/jsapi/model/naming.rb
CHANGED
@@ -6,8 +6,8 @@ module Jsapi
|
|
6
6
|
include ActiveModel::Naming
|
7
7
|
include ActiveModel::Translation
|
8
8
|
|
9
|
-
# Overrides <code>ActiveModel::Naming#model_name</code> to support
|
10
|
-
#
|
9
|
+
# Overrides <code>ActiveModel::Naming#model_name</code> to support anonymous
|
10
|
+
# model classes.
|
11
11
|
def model_name
|
12
12
|
@_model_name ||= begin
|
13
13
|
# Copied from ActiveModel::Naming#model_name
|
@@ -15,8 +15,7 @@ module Jsapi
|
|
15
15
|
m.respond_to?(:use_relative_model_naming?) &&
|
16
16
|
m.use_relative_model_naming?
|
17
17
|
end
|
18
|
-
# Prevent that ActiveModel::Name::new raises an error if this is
|
19
|
-
# an anonymous class
|
18
|
+
# Prevent that ActiveModel::Name::new raises an error if this is an anonymous class
|
20
19
|
klass = self
|
21
20
|
klass = klass.superclass while klass.name.nil?
|
22
21
|
|
@@ -11,8 +11,8 @@ module Jsapi
|
|
11
11
|
validate :nested_validity
|
12
12
|
end
|
13
13
|
|
14
|
-
# Overrides <code>ActiveModel::Validations#errors</code>
|
15
|
-
# Errors as error store.
|
14
|
+
# Overrides <code>ActiveModel::Validations#errors</code>
|
15
|
+
# to use Errors as error store.
|
16
16
|
def errors
|
17
17
|
@errors ||= Errors.new(self)
|
18
18
|
end
|
data/lib/jsapi/version.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Jsapi
|
4
|
-
#
|
5
|
-
module Version
|
6
|
-
VERSION = '0.1.
|
4
|
+
# Holds the current GEM version
|
5
|
+
module Version
|
6
|
+
VERSION = '0.1.2'
|
7
|
+
|
8
|
+
# NOTE: See https://bundler.io/guides/creating_gem.html
|
7
9
|
end
|
8
10
|
end
|
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.1.
|
4
|
+
version: 0.1.2
|
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-06-28 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
|
@@ -139,7 +139,9 @@ files:
|
|
139
139
|
homepage: https://github.com/dmgoeller/jsapi
|
140
140
|
licenses:
|
141
141
|
- MIT
|
142
|
-
metadata:
|
142
|
+
metadata:
|
143
|
+
homepage_uri: https://github.com/dmgoeller/jsapi
|
144
|
+
source_code_uri: https://github.com/dmgoeller/jsapi
|
143
145
|
post_install_message:
|
144
146
|
rdoc_options: []
|
145
147
|
require_paths:
|