jsapi 0.1.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 +7 -0
- data/lib/jsapi/controller/base.rb +21 -0
- data/lib/jsapi/controller/error_result.rb +21 -0
- data/lib/jsapi/controller/methods.rb +144 -0
- data/lib/jsapi/controller/parameters.rb +86 -0
- data/lib/jsapi/controller/parameters_invalid.rb +25 -0
- data/lib/jsapi/controller/response.rb +84 -0
- data/lib/jsapi/controller.rb +13 -0
- data/lib/jsapi/dsl/callbacks.rb +32 -0
- data/lib/jsapi/dsl/class_methods.rb +85 -0
- data/lib/jsapi/dsl/definitions.rb +102 -0
- data/lib/jsapi/dsl/error.rb +38 -0
- data/lib/jsapi/dsl/examples.rb +30 -0
- data/lib/jsapi/dsl/node.rb +62 -0
- data/lib/jsapi/dsl/openapi/callback.rb +23 -0
- data/lib/jsapi/dsl/openapi/root.rb +12 -0
- data/lib/jsapi/dsl/openapi.rb +4 -0
- data/lib/jsapi/dsl/operation.rb +118 -0
- data/lib/jsapi/dsl/parameter.rb +10 -0
- data/lib/jsapi/dsl/request_body.rb +10 -0
- data/lib/jsapi/dsl/response.rb +33 -0
- data/lib/jsapi/dsl/schema.rb +87 -0
- data/lib/jsapi/dsl.rb +24 -0
- data/lib/jsapi/json/array.rb +35 -0
- data/lib/jsapi/json/boolean.rb +17 -0
- data/lib/jsapi/json/integer.rb +15 -0
- data/lib/jsapi/json/null.rb +27 -0
- data/lib/jsapi/json/number.rb +15 -0
- data/lib/jsapi/json/object.rb +53 -0
- data/lib/jsapi/json/string.rb +29 -0
- data/lib/jsapi/json/value.rb +47 -0
- data/lib/jsapi/json.rb +41 -0
- data/lib/jsapi/meta/attributes/class_methods.rb +112 -0
- data/lib/jsapi/meta/attributes/type_caster.rb +48 -0
- data/lib/jsapi/meta/attributes.rb +4 -0
- data/lib/jsapi/meta/base.rb +41 -0
- data/lib/jsapi/meta/base_reference.rb +33 -0
- data/lib/jsapi/meta/definitions.rb +226 -0
- data/lib/jsapi/meta/example/model.rb +44 -0
- data/lib/jsapi/meta/example/reference.rb +15 -0
- data/lib/jsapi/meta/example.rb +19 -0
- data/lib/jsapi/meta/existence.rb +69 -0
- data/lib/jsapi/meta/invalid_argument_error.rb +11 -0
- data/lib/jsapi/meta/openapi/callback/model.rb +36 -0
- data/lib/jsapi/meta/openapi/callback/reference.rb +16 -0
- data/lib/jsapi/meta/openapi/callback.rb +21 -0
- data/lib/jsapi/meta/openapi/contact.rb +34 -0
- data/lib/jsapi/meta/openapi/external_documentation.rb +28 -0
- data/lib/jsapi/meta/openapi/info.rb +52 -0
- data/lib/jsapi/meta/openapi/license.rb +28 -0
- data/lib/jsapi/meta/openapi/link/model.rb +48 -0
- data/lib/jsapi/meta/openapi/link/reference.rb +16 -0
- data/lib/jsapi/meta/openapi/link.rb +21 -0
- data/lib/jsapi/meta/openapi/oauth_flow.rb +50 -0
- data/lib/jsapi/meta/openapi/root.rb +134 -0
- data/lib/jsapi/meta/openapi/security_requirement.rb +27 -0
- data/lib/jsapi/meta/openapi/security_scheme/api_key.rb +38 -0
- data/lib/jsapi/meta/openapi/security_scheme/base.rb +16 -0
- data/lib/jsapi/meta/openapi/security_scheme/http/basic.rb +31 -0
- data/lib/jsapi/meta/openapi/security_scheme/http/bearer.rb +37 -0
- data/lib/jsapi/meta/openapi/security_scheme/http/other.rb +37 -0
- data/lib/jsapi/meta/openapi/security_scheme/http.rb +31 -0
- data/lib/jsapi/meta/openapi/security_scheme/oauth2.rb +47 -0
- data/lib/jsapi/meta/openapi/security_scheme/open_id_connect.rb +33 -0
- data/lib/jsapi/meta/openapi/security_scheme.rb +51 -0
- data/lib/jsapi/meta/openapi/server.rb +34 -0
- data/lib/jsapi/meta/openapi/server_variable.rb +34 -0
- data/lib/jsapi/meta/openapi/tag.rb +34 -0
- data/lib/jsapi/meta/openapi/version.rb +41 -0
- data/lib/jsapi/meta/openapi.rb +16 -0
- data/lib/jsapi/meta/operation.rb +186 -0
- data/lib/jsapi/meta/parameter/model.rb +170 -0
- data/lib/jsapi/meta/parameter/reference.rb +30 -0
- data/lib/jsapi/meta/parameter.rb +19 -0
- data/lib/jsapi/meta/property.rb +62 -0
- data/lib/jsapi/meta/reference_error.rb +12 -0
- data/lib/jsapi/meta/request_body/model.rb +65 -0
- data/lib/jsapi/meta/request_body/reference.rb +14 -0
- data/lib/jsapi/meta/request_body.rb +19 -0
- data/lib/jsapi/meta/rescue_handler.rb +26 -0
- data/lib/jsapi/meta/response/model.rb +72 -0
- data/lib/jsapi/meta/response/reference.rb +17 -0
- data/lib/jsapi/meta/response.rb +19 -0
- data/lib/jsapi/meta/schema/array.rb +42 -0
- data/lib/jsapi/meta/schema/base.rb +146 -0
- data/lib/jsapi/meta/schema/boolean.rb +9 -0
- data/lib/jsapi/meta/schema/boundary.rb +37 -0
- data/lib/jsapi/meta/schema/conversion.rb +28 -0
- data/lib/jsapi/meta/schema/delegator.rb +26 -0
- data/lib/jsapi/meta/schema/discriminator.rb +36 -0
- data/lib/jsapi/meta/schema/integer.rb +9 -0
- data/lib/jsapi/meta/schema/number.rb +9 -0
- data/lib/jsapi/meta/schema/numeric.rb +56 -0
- data/lib/jsapi/meta/schema/object.rb +85 -0
- data/lib/jsapi/meta/schema/reference.rb +38 -0
- data/lib/jsapi/meta/schema/string.rb +58 -0
- data/lib/jsapi/meta/schema/validation/base.rb +29 -0
- data/lib/jsapi/meta/schema/validation/enum.rb +26 -0
- data/lib/jsapi/meta/schema/validation/max_items.rb +26 -0
- data/lib/jsapi/meta/schema/validation/max_length.rb +26 -0
- data/lib/jsapi/meta/schema/validation/maximum.rb +51 -0
- data/lib/jsapi/meta/schema/validation/min_items.rb +26 -0
- data/lib/jsapi/meta/schema/validation/min_length.rb +26 -0
- data/lib/jsapi/meta/schema/validation/minimum.rb +51 -0
- data/lib/jsapi/meta/schema/validation/multiple_of.rb +24 -0
- data/lib/jsapi/meta/schema/validation/pattern.rb +30 -0
- data/lib/jsapi/meta/schema/validation.rb +12 -0
- data/lib/jsapi/meta/schema.rb +61 -0
- data/lib/jsapi/meta.rb +23 -0
- data/lib/jsapi/model/attributes.rb +22 -0
- data/lib/jsapi/model/base.rb +34 -0
- data/lib/jsapi/model/error.rb +15 -0
- data/lib/jsapi/model/errors.rb +51 -0
- data/lib/jsapi/model/naming.rb +28 -0
- data/lib/jsapi/model/nestable.rb +37 -0
- data/lib/jsapi/model/nested_error.rb +54 -0
- data/lib/jsapi/model/validations.rb +27 -0
- data/lib/jsapi/model.rb +15 -0
- data/lib/jsapi/version.rb +8 -0
- data/lib/jsapi.rb +8 -0
- metadata +162 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
# The base API model used to represent top-level parameters and nested
|
6
|
+
# object parameters by default.
|
7
|
+
class Base
|
8
|
+
extend Naming
|
9
|
+
|
10
|
+
include Attributes
|
11
|
+
include Validations
|
12
|
+
|
13
|
+
def initialize(nested)
|
14
|
+
@nested = nested
|
15
|
+
end
|
16
|
+
|
17
|
+
def ==(other) # :nodoc:
|
18
|
+
super || (
|
19
|
+
self.class == other.class &&
|
20
|
+
attributes == other.attributes
|
21
|
+
)
|
22
|
+
end
|
23
|
+
|
24
|
+
def inspect # :nodoc:
|
25
|
+
"#<#{self.class.name} " \
|
26
|
+
"#{attributes.map { |k, v| "#{k}: #{v.inspect}" }.join(', ')}>"
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
attr_reader :nested
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
class Error < ActiveModel::Error
|
6
|
+
|
7
|
+
# Overrides <code>ActiveModel::Error#full_message</code>.
|
8
|
+
def full_message
|
9
|
+
return message if attribute == :base || attribute.blank?
|
10
|
+
|
11
|
+
"'#{attribute}' #{message}".rstrip
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
class Errors < ActiveModel::Errors
|
6
|
+
def initialize(base = nil)
|
7
|
+
@base = base
|
8
|
+
@path = []
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
# Overrides <code>ActiveModel::Errors#add</code> to wrap errors related
|
13
|
+
# to nested models.
|
14
|
+
def add(attribute, type = :invalid, **options)
|
15
|
+
type = type.call(@base, options) if type.respond_to?(:call)
|
16
|
+
|
17
|
+
errors << wrap(Error.new(@base, attribute.to_sym, type, **options))
|
18
|
+
end
|
19
|
+
|
20
|
+
# Overrides <code>ActiveModel::Errors#import</code> to wrap errors
|
21
|
+
# related to nested models.
|
22
|
+
def import(error, options = {})
|
23
|
+
if (options = options.slice(:attribute, :type)).any?
|
24
|
+
attribute = (options[:attribute] || error.attribute).to_sym
|
25
|
+
type = options[:type] || error.raw_type
|
26
|
+
error = Error.new(error.base, attribute, type, **error.options)
|
27
|
+
end
|
28
|
+
errors << wrap(error)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Calls the block in context of +attribute+.
|
32
|
+
def nested(attribute, &block)
|
33
|
+
@path.push(attribute.to_sym)
|
34
|
+
block&.call
|
35
|
+
ensure
|
36
|
+
@path.pop
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def wrap(error)
|
42
|
+
return error if @path.empty?
|
43
|
+
|
44
|
+
@path.reverse_each do |attribute|
|
45
|
+
error = NestedError.new(attribute, error)
|
46
|
+
end
|
47
|
+
error
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
module Naming
|
6
|
+
include ActiveModel::Naming
|
7
|
+
include ActiveModel::Translation
|
8
|
+
|
9
|
+
# Overrides <code>ActiveModel::Naming#model_name</code> to support
|
10
|
+
# anonymous model classes.
|
11
|
+
def model_name
|
12
|
+
@_model_name ||= begin
|
13
|
+
# Copied from ActiveModel::Naming#model_name
|
14
|
+
namespace = module_parents.detect do |m|
|
15
|
+
m.respond_to?(:use_relative_model_naming?) &&
|
16
|
+
m.use_relative_model_naming?
|
17
|
+
end
|
18
|
+
# Prevent that ActiveModel::Name::new raises an error if this is
|
19
|
+
# an anonymous class
|
20
|
+
klass = self
|
21
|
+
klass = klass.superclass while klass.name.nil?
|
22
|
+
|
23
|
+
ActiveModel::Name.new(klass, namespace)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
module Nestable
|
6
|
+
|
7
|
+
# Returns the value assigned to +name+.
|
8
|
+
def [](name)
|
9
|
+
raw_attributes[name&.to_s]&.value
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns +true+ if +name+ is present, false +otherwise+.
|
13
|
+
def attribute?(name)
|
14
|
+
raw_attributes.key?(name&.to_s)
|
15
|
+
end
|
16
|
+
|
17
|
+
# Returns a +Hash+ containing all attributes.
|
18
|
+
def attributes
|
19
|
+
raw_attributes.transform_values(&:value)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def validate_attributes(errors)
|
25
|
+
raw_attributes.map do |key, value|
|
26
|
+
errors.nested(key) do
|
27
|
+
next value.validate(errors) unless value.respond_to?(:model)
|
28
|
+
next true if (model = value.model).valid?
|
29
|
+
|
30
|
+
errors.merge!(model)
|
31
|
+
false
|
32
|
+
end
|
33
|
+
end.all?
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
# Wraps an error related to a nested model.
|
6
|
+
class NestedError
|
7
|
+
attr_reader :attribute, :error
|
8
|
+
|
9
|
+
delegate_missing_to :error
|
10
|
+
|
11
|
+
def initialize(attribute, error)
|
12
|
+
@attribute = attribute
|
13
|
+
@error = error
|
14
|
+
end
|
15
|
+
|
16
|
+
def ==(other) # :nodoc:
|
17
|
+
other.is_a?(self.class) &&
|
18
|
+
@attribute == other.attribute &&
|
19
|
+
@error == other.error
|
20
|
+
end
|
21
|
+
|
22
|
+
# Like <code>ActiveModel::Error#full_message</code>.
|
23
|
+
def full_message
|
24
|
+
base? ? "'#{attribute}' #{message}" : "'#{attribute}.#{message[1..]}"
|
25
|
+
end
|
26
|
+
|
27
|
+
# Like <code>ActiveModel::Error#match?</code>.
|
28
|
+
def match?(attribute, type = nil, **options)
|
29
|
+
return false if self.attribute != attribute
|
30
|
+
return true if type.nil? && options.empty?
|
31
|
+
|
32
|
+
@error.match?(:base, type, **options)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Like <code>ActiveModel::Error#message</code>.
|
36
|
+
def message
|
37
|
+
base? ? @error.message : "'#{@error.attribute}' #{@error.message}".rstrip
|
38
|
+
end
|
39
|
+
|
40
|
+
# Like <code>ActiveModel::Error#strict_match?</code>.
|
41
|
+
def strict_match?(attribute, type = nil, **options)
|
42
|
+
return false unless match?(attribute, type, **options)
|
43
|
+
|
44
|
+
@error.strict_match?(:base, type, **options)
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def base?
|
50
|
+
@error.attribute == :base
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Jsapi
|
4
|
+
module Model
|
5
|
+
module Validations
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
include ActiveModel::Validations
|
9
|
+
|
10
|
+
included do
|
11
|
+
validate :nested_validity
|
12
|
+
end
|
13
|
+
|
14
|
+
# Overrides <code>ActiveModel::Validations#errors</code> to use
|
15
|
+
# Errors as error store.
|
16
|
+
def errors
|
17
|
+
@errors ||= Errors.new(self)
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def nested_validity
|
23
|
+
nested.validate(errors)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/jsapi/model.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'model/error'
|
4
|
+
require_relative 'model/nested_error'
|
5
|
+
require_relative 'model/errors'
|
6
|
+
require_relative 'model/attributes'
|
7
|
+
require_relative 'model/naming'
|
8
|
+
require_relative 'model/validations'
|
9
|
+
require_relative 'model/base'
|
10
|
+
require_relative 'model/nestable'
|
11
|
+
|
12
|
+
module Jsapi
|
13
|
+
# Provides classes and modules to deal with API models.
|
14
|
+
module Model end
|
15
|
+
end
|
data/lib/jsapi.rb
ADDED
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jsapi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Denis Göller
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-05-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Jsapi can be used to read requests, produce responses and create OpenAPI
|
14
|
+
documents
|
15
|
+
email: denis@dmgoeller.de
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- lib/jsapi.rb
|
21
|
+
- lib/jsapi/controller.rb
|
22
|
+
- lib/jsapi/controller/base.rb
|
23
|
+
- lib/jsapi/controller/error_result.rb
|
24
|
+
- lib/jsapi/controller/methods.rb
|
25
|
+
- lib/jsapi/controller/parameters.rb
|
26
|
+
- lib/jsapi/controller/parameters_invalid.rb
|
27
|
+
- lib/jsapi/controller/response.rb
|
28
|
+
- lib/jsapi/dsl.rb
|
29
|
+
- lib/jsapi/dsl/callbacks.rb
|
30
|
+
- lib/jsapi/dsl/class_methods.rb
|
31
|
+
- lib/jsapi/dsl/definitions.rb
|
32
|
+
- lib/jsapi/dsl/error.rb
|
33
|
+
- lib/jsapi/dsl/examples.rb
|
34
|
+
- lib/jsapi/dsl/node.rb
|
35
|
+
- lib/jsapi/dsl/openapi.rb
|
36
|
+
- lib/jsapi/dsl/openapi/callback.rb
|
37
|
+
- lib/jsapi/dsl/openapi/root.rb
|
38
|
+
- lib/jsapi/dsl/operation.rb
|
39
|
+
- lib/jsapi/dsl/parameter.rb
|
40
|
+
- lib/jsapi/dsl/request_body.rb
|
41
|
+
- lib/jsapi/dsl/response.rb
|
42
|
+
- lib/jsapi/dsl/schema.rb
|
43
|
+
- lib/jsapi/json.rb
|
44
|
+
- lib/jsapi/json/array.rb
|
45
|
+
- lib/jsapi/json/boolean.rb
|
46
|
+
- lib/jsapi/json/integer.rb
|
47
|
+
- lib/jsapi/json/null.rb
|
48
|
+
- lib/jsapi/json/number.rb
|
49
|
+
- lib/jsapi/json/object.rb
|
50
|
+
- lib/jsapi/json/string.rb
|
51
|
+
- lib/jsapi/json/value.rb
|
52
|
+
- 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
|
+
- lib/jsapi/meta/base.rb
|
57
|
+
- lib/jsapi/meta/base_reference.rb
|
58
|
+
- lib/jsapi/meta/definitions.rb
|
59
|
+
- lib/jsapi/meta/example.rb
|
60
|
+
- lib/jsapi/meta/example/model.rb
|
61
|
+
- lib/jsapi/meta/example/reference.rb
|
62
|
+
- lib/jsapi/meta/existence.rb
|
63
|
+
- lib/jsapi/meta/invalid_argument_error.rb
|
64
|
+
- lib/jsapi/meta/openapi.rb
|
65
|
+
- lib/jsapi/meta/openapi/callback.rb
|
66
|
+
- lib/jsapi/meta/openapi/callback/model.rb
|
67
|
+
- lib/jsapi/meta/openapi/callback/reference.rb
|
68
|
+
- lib/jsapi/meta/openapi/contact.rb
|
69
|
+
- lib/jsapi/meta/openapi/external_documentation.rb
|
70
|
+
- lib/jsapi/meta/openapi/info.rb
|
71
|
+
- lib/jsapi/meta/openapi/license.rb
|
72
|
+
- lib/jsapi/meta/openapi/link.rb
|
73
|
+
- lib/jsapi/meta/openapi/link/model.rb
|
74
|
+
- lib/jsapi/meta/openapi/link/reference.rb
|
75
|
+
- lib/jsapi/meta/openapi/oauth_flow.rb
|
76
|
+
- lib/jsapi/meta/openapi/root.rb
|
77
|
+
- lib/jsapi/meta/openapi/security_requirement.rb
|
78
|
+
- lib/jsapi/meta/openapi/security_scheme.rb
|
79
|
+
- lib/jsapi/meta/openapi/security_scheme/api_key.rb
|
80
|
+
- lib/jsapi/meta/openapi/security_scheme/base.rb
|
81
|
+
- lib/jsapi/meta/openapi/security_scheme/http.rb
|
82
|
+
- lib/jsapi/meta/openapi/security_scheme/http/basic.rb
|
83
|
+
- lib/jsapi/meta/openapi/security_scheme/http/bearer.rb
|
84
|
+
- lib/jsapi/meta/openapi/security_scheme/http/other.rb
|
85
|
+
- lib/jsapi/meta/openapi/security_scheme/oauth2.rb
|
86
|
+
- lib/jsapi/meta/openapi/security_scheme/open_id_connect.rb
|
87
|
+
- lib/jsapi/meta/openapi/server.rb
|
88
|
+
- lib/jsapi/meta/openapi/server_variable.rb
|
89
|
+
- lib/jsapi/meta/openapi/tag.rb
|
90
|
+
- lib/jsapi/meta/openapi/version.rb
|
91
|
+
- lib/jsapi/meta/operation.rb
|
92
|
+
- lib/jsapi/meta/parameter.rb
|
93
|
+
- lib/jsapi/meta/parameter/model.rb
|
94
|
+
- lib/jsapi/meta/parameter/reference.rb
|
95
|
+
- lib/jsapi/meta/property.rb
|
96
|
+
- lib/jsapi/meta/reference_error.rb
|
97
|
+
- lib/jsapi/meta/request_body.rb
|
98
|
+
- lib/jsapi/meta/request_body/model.rb
|
99
|
+
- lib/jsapi/meta/request_body/reference.rb
|
100
|
+
- lib/jsapi/meta/rescue_handler.rb
|
101
|
+
- lib/jsapi/meta/response.rb
|
102
|
+
- lib/jsapi/meta/response/model.rb
|
103
|
+
- lib/jsapi/meta/response/reference.rb
|
104
|
+
- lib/jsapi/meta/schema.rb
|
105
|
+
- lib/jsapi/meta/schema/array.rb
|
106
|
+
- lib/jsapi/meta/schema/base.rb
|
107
|
+
- lib/jsapi/meta/schema/boolean.rb
|
108
|
+
- lib/jsapi/meta/schema/boundary.rb
|
109
|
+
- lib/jsapi/meta/schema/conversion.rb
|
110
|
+
- lib/jsapi/meta/schema/delegator.rb
|
111
|
+
- lib/jsapi/meta/schema/discriminator.rb
|
112
|
+
- lib/jsapi/meta/schema/integer.rb
|
113
|
+
- lib/jsapi/meta/schema/number.rb
|
114
|
+
- lib/jsapi/meta/schema/numeric.rb
|
115
|
+
- lib/jsapi/meta/schema/object.rb
|
116
|
+
- lib/jsapi/meta/schema/reference.rb
|
117
|
+
- lib/jsapi/meta/schema/string.rb
|
118
|
+
- lib/jsapi/meta/schema/validation.rb
|
119
|
+
- lib/jsapi/meta/schema/validation/base.rb
|
120
|
+
- lib/jsapi/meta/schema/validation/enum.rb
|
121
|
+
- lib/jsapi/meta/schema/validation/max_items.rb
|
122
|
+
- lib/jsapi/meta/schema/validation/max_length.rb
|
123
|
+
- lib/jsapi/meta/schema/validation/maximum.rb
|
124
|
+
- lib/jsapi/meta/schema/validation/min_items.rb
|
125
|
+
- lib/jsapi/meta/schema/validation/min_length.rb
|
126
|
+
- lib/jsapi/meta/schema/validation/minimum.rb
|
127
|
+
- lib/jsapi/meta/schema/validation/multiple_of.rb
|
128
|
+
- lib/jsapi/meta/schema/validation/pattern.rb
|
129
|
+
- lib/jsapi/model.rb
|
130
|
+
- lib/jsapi/model/attributes.rb
|
131
|
+
- lib/jsapi/model/base.rb
|
132
|
+
- lib/jsapi/model/error.rb
|
133
|
+
- lib/jsapi/model/errors.rb
|
134
|
+
- lib/jsapi/model/naming.rb
|
135
|
+
- lib/jsapi/model/nestable.rb
|
136
|
+
- lib/jsapi/model/nested_error.rb
|
137
|
+
- lib/jsapi/model/validations.rb
|
138
|
+
- lib/jsapi/version.rb
|
139
|
+
homepage: https://github.com/dmgoeller/jsapi
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata: {}
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 2.7.0
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - ">="
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
157
|
+
requirements: []
|
158
|
+
rubygems_version: 3.5.6
|
159
|
+
signing_key:
|
160
|
+
specification_version: 4
|
161
|
+
summary: Build JSON APIs with Rails
|
162
|
+
test_files: []
|