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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jsapi/controller/error_result.rb +1 -2
  3. data/lib/jsapi/controller/methods.rb +16 -19
  4. data/lib/jsapi/controller/parameters.rb +7 -8
  5. data/lib/jsapi/controller/parameters_invalid.rb +1 -2
  6. data/lib/jsapi/controller/response.rb +2 -2
  7. data/lib/jsapi/dsl/callbacks.rb +1 -1
  8. data/lib/jsapi/dsl/definitions.rb +3 -3
  9. data/lib/jsapi/dsl/error.rb +3 -5
  10. data/lib/jsapi/dsl/examples.rb +1 -1
  11. data/lib/jsapi/dsl/openapi/callback.rb +1 -1
  12. data/lib/jsapi/dsl/openapi/root.rb +115 -1
  13. data/lib/jsapi/dsl/operation.rb +50 -11
  14. data/lib/jsapi/dsl/parameter.rb +29 -0
  15. data/lib/jsapi/dsl/request_body.rb +22 -0
  16. data/lib/jsapi/dsl/response.rb +29 -0
  17. data/lib/jsapi/dsl/schema.rb +139 -13
  18. data/lib/jsapi/json/value.rb +2 -2
  19. data/lib/jsapi/meta/attributes/type_caster.rb +3 -2
  20. data/lib/jsapi/meta/base.rb +3 -2
  21. data/lib/jsapi/meta/base_reference.rb +3 -2
  22. data/lib/jsapi/meta/definitions.rb +2 -1
  23. data/lib/jsapi/meta/example/model.rb +1 -2
  24. data/lib/jsapi/meta/example/reference.rb +0 -1
  25. data/lib/jsapi/meta/invalid_argument_error.rb +1 -0
  26. data/lib/jsapi/meta/openapi/callback/model.rb +1 -1
  27. data/lib/jsapi/meta/openapi/root.rb +4 -5
  28. data/lib/jsapi/meta/openapi/security_scheme/oauth2.rb +1 -2
  29. data/lib/jsapi/meta/openapi/security_scheme/open_id_connect.rb +2 -3
  30. data/lib/jsapi/meta/openapi/security_scheme.rb +2 -2
  31. data/lib/jsapi/meta/openapi/version.rb +3 -0
  32. data/lib/jsapi/meta/operation.rb +15 -24
  33. data/lib/jsapi/meta/parameter/model.rb +2 -2
  34. data/lib/jsapi/meta/parameter/reference.rb +3 -4
  35. data/lib/jsapi/meta/property.rb +3 -4
  36. data/lib/jsapi/meta/request_body/model.rb +1 -1
  37. data/lib/jsapi/meta/rescue_handler.rb +7 -0
  38. data/lib/jsapi/meta/response/model.rb +1 -1
  39. data/lib/jsapi/meta/schema/base.rb +7 -9
  40. data/lib/jsapi/meta/schema/reference.rb +1 -2
  41. data/lib/jsapi/meta/schema/string.rb +1 -1
  42. data/lib/jsapi/meta/schema/validation/maximum.rb +6 -2
  43. data/lib/jsapi/meta/schema/validation/minimum.rb +6 -2
  44. data/lib/jsapi/meta/schema/validation/multiple_of.rb +3 -1
  45. data/lib/jsapi/model/base.rb +2 -2
  46. data/lib/jsapi/model/errors.rb +3 -4
  47. data/lib/jsapi/model/naming.rb +3 -4
  48. data/lib/jsapi/model/validations.rb +2 -2
  49. data/lib/jsapi/version.rb +5 -3
  50. metadata +5 -3
@@ -9,9 +9,13 @@ module Jsapi
9
9
 
10
10
  def initialize(value, exclusive: false)
11
11
  if exclusive
12
- raise ArgumentError, "invalid exclusive maximum: #{value.inspect}" unless value.respond_to?(:<)
12
+ unless value.respond_to?(:<)
13
+ raise ArgumentError, "invalid exclusive maximum: #{value.inspect}"
14
+ end
13
15
  else
14
- raise ArgumentError, "invalid maximum: #{value.inspect}" unless value.respond_to?(:<=)
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
- raise ArgumentError, "invalid exclusive minimum: #{value.inspect}" unless value.respond_to?(:>)
12
+ unless value.respond_to?(:>)
13
+ raise ArgumentError, "invalid exclusive minimum: #{value.inspect}"
14
+ end
13
15
  else
14
- raise ArgumentError, "invalid minimum: #{value.inspect}" unless value.respond_to?(:>=)
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
- raise ArgumentError, "invalid multiple of: #{value.inspect}" unless value.respond_to?(:%)
9
+ unless value.respond_to?(:%)
10
+ raise ArgumentError, "invalid multiple of: #{value.inspect}"
11
+ end
10
12
 
11
13
  super
12
14
  end
@@ -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
- # object parameters by default.
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
 
@@ -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
- # related to nested models.
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
@@ -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
- # anonymous model classes.
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> to use
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
- # See https://bundler.io/guides/creating_gem.html
5
- module Version # :nodoc:
6
- VERSION = '0.1.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.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-05-27 00:00:00.000000000 Z
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: