dry-validation 1.10.0 → 1.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b192702d3a1f1a9a085fd65f94e0feba5457ea8eb6fecbbb45fe108a4d2436b
4
- data.tar.gz: 1b685144ee290ad020397181072c5444c5d9c4beb673113db0b96182246e3040
3
+ metadata.gz: c326a1534dbb87a166682a21d9f60228f0bf68086b4ec27cbcb0fc01ad20a945
4
+ data.tar.gz: 2c01562734f8c6a6c03d0015843f3cff56f53a185f91f4aa8a3f563130c293e5
5
5
  SHA512:
6
- metadata.gz: 88c8d5869a083648e539fdb96b29b766977176d24f7f9876e72c691f3c78409fc4cbd75df1081f532b7a7366d66c46eaddd0ef43cafb6d1a62c240abb19f5b3c
7
- data.tar.gz: be4cf74f428428af9f65401433b96b20d264c89c3246452906a43447ce642b114e7e709bbccdf6e9bdacc2361880048c08101bbaa454bd45196158f8a948c3df
6
+ metadata.gz: f961a54ed17568337a245bff5b7eb4254ebafcf545d148b2e6d76d798e48ec1adc57c20df590834cc4e7377a7f3576ddd065dfa964a77887a7cbb1a3c8130035
7
+ data.tar.gz: fe5fab776a9f7d4fce8208cf6207234c7f53b1d5ac8d686b705f757b569ec4b67ffa8344da013eeb5f30b947015d5be54cef1a8f9c54fab93e7ac9c7f89e1a71
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.11.0 2025-01-06
4
+
5
+
6
+ ### Changed
7
+
8
+ - Passing non-hash values to `Contract#call` now raises a meaningful error (issue #716 via #723) (@flash-gordon)
9
+ - Set minimum Ruby version to 3.1 (@flash-gordon)
10
+
11
+ [Compare v1.10.0...v1.11.0](https://github.com/dry-rb/dry-validation/compare/v1.10.0...v1.11.0)
12
+
13
+ ## 1.10.0 2022-11-04
14
+
15
+ This release is mostly about upgrading to dry-core 1.0 and dry-configurable 1.0. One of the outcomes is dropping dependency on dry-container (because it was moved to dry-core). If you happen to use dry-container, please switch to `Dry::Core::Container`.
16
+
17
+ ### Changed
18
+
19
+ - Upgraded to the latest versions of dry-{core,configurable,logic,types} (@flash-gordon + @solnic)
20
+
21
+ [Compare v1.9.0...v1.10.0](https://github.com/dry-rb/dry-validation/compare/v1.9.0...v1.10.0)
22
+
3
23
  ## 1.9.0 2022-10-15
4
24
 
5
25
 
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2022 dry-rb team
3
+ Copyright (c) 2015-2023 dry-rb team
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,29 +1,22 @@
1
1
  <!--- this file is synced from dry-rb/template-gem project -->
2
+
2
3
  [gem]: https://rubygems.org/gems/dry-validation
3
4
  [actions]: https://github.com/dry-rb/dry-validation/actions
4
- [codacy]: https://www.codacy.com/gh/dry-rb/dry-validation
5
- [chat]: https://dry-rb.zulipchat.com
6
- [inchpages]: http://inch-ci.org/github/dry-rb/dry-validation
7
-
8
- # dry-validation [![Join the chat at https://dry-rb.zulipchat.com](https://img.shields.io/badge/dry--rb-join%20chat-%23346b7a.svg)][chat]
9
5
 
10
- [![Gem Version](https://badge.fury.io/rb/dry-validation.svg)][gem]
11
- [![CI Status](https://github.com/dry-rb/dry-validation/workflows/ci/badge.svg)][actions]
12
- [![Codacy Badge](https://api.codacy.com/project/badge/Grade/f30e3ff5ec304c55a73868cdbf055c67)][codacy]
13
- [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/f30e3ff5ec304c55a73868cdbf055c67)][codacy]
14
- [![Inline docs](http://inch-ci.org/github/dry-rb/dry-validation.svg?branch=main)][inchpages]
6
+ # dry-validation [![Gem Version](https://badge.fury.io/rb/dry-validation.svg)][gem] [![CI Status](https://github.com/dry-rb/dry-validation/workflows/CI/badge.svg)][actions]
15
7
 
16
8
  ## Links
17
9
 
18
10
  * [User documentation](https://dry-rb.org/gems/dry-validation)
19
11
  * [API documentation](http://rubydoc.info/gems/dry-validation)
12
+ * [Forum](https://discourse.dry-rb.org)
20
13
 
21
14
  ## Supported Ruby versions
22
15
 
23
16
  This library officially supports the following Ruby versions:
24
17
 
25
- * MRI `>= 2.7.0`
26
- * jruby `>= 9.3` (postponed until 2.7 is supported)
18
+ * MRI `>= 3.1`
19
+ * jruby `>= 9.4` (not tested on CI)
27
20
 
28
21
  ## License
29
22
 
@@ -16,26 +16,24 @@ Gem::Specification.new do |spec|
16
16
  spec.summary = "Validation library"
17
17
  spec.description = spec.summary
18
18
  spec.homepage = "https://dry-rb.org/gems/dry-validation"
19
- spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-validation.gemspec", "lib/**/*", "config/*.yml"]
19
+ spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-validation.gemspec",
20
+ "lib/**/*", "config/*.yml"]
20
21
  spec.bindir = "bin"
21
22
  spec.executables = []
22
23
  spec.require_paths = ["lib"]
23
24
 
24
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
- spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-validation/blob/main/CHANGELOG.md"
26
- spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-validation"
27
- spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-validation/issues"
25
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
26
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-validation/blob/main/CHANGELOG.md"
27
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-validation"
28
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-validation/issues"
29
+ spec.metadata["rubygems_mfa_required"] = "true"
28
30
 
29
- spec.required_ruby_version = ">= 2.7.0"
31
+ spec.required_ruby_version = ">= 3.1"
30
32
 
31
33
  # to update dependencies edit project.yml
32
- spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
33
- spec.add_runtime_dependency "dry-core", "~> 1.0", "< 2"
34
- spec.add_runtime_dependency "dry-initializer", "~> 3.0"
35
- spec.add_runtime_dependency "dry-schema", ">= 1.12", "< 2"
36
- spec.add_runtime_dependency "zeitwerk", "~> 2.6"
37
-
38
- spec.add_development_dependency "bundler"
39
- spec.add_development_dependency "rake"
40
- spec.add_development_dependency "rspec"
34
+ spec.add_dependency "concurrent-ruby", "~> 1.0"
35
+ spec.add_dependency "dry-core", "~> 1.1"
36
+ spec.add_dependency "dry-initializer", "~> 3.2"
37
+ spec.add_dependency "dry-schema", "~> 1.14"
38
+ spec.add_dependency "zeitwerk", "~> 2.6"
41
39
  end
@@ -5,7 +5,7 @@ require "dry/core/constants"
5
5
 
6
6
  module Dry
7
7
  module Validation
8
- include Dry::Core::Constants
8
+ include ::Dry::Core::Constants
9
9
 
10
10
  DOT = "."
11
11
 
@@ -21,19 +21,19 @@ module Dry
21
21
  # Mapping for block kwarg options used by block_options
22
22
  #
23
23
  # @see Rule#block_options
24
- BLOCK_OPTIONS_MAPPINGS = Hash.new { |_, key| key }.update(context: :_context).freeze
24
+ BLOCK_OPTIONS_MAPPINGS = ::Hash.new { |_, key| key }.update(context: :_context).freeze
25
25
 
26
26
  # Error raised when `rule` specifies one or more keys that the schema doesn't specify
27
- InvalidKeysError = Class.new(StandardError)
27
+ InvalidKeysError = ::Class.new(::StandardError)
28
28
 
29
29
  # Error raised when a localized message was not found
30
- MissingMessageError = Class.new(StandardError)
30
+ MissingMessageError = ::Class.new(::StandardError)
31
31
 
32
32
  # Error raised when trying to define a schema in a contract class that already has a schema
33
- DuplicateSchemaError = Class.new(StandardError)
33
+ DuplicateSchemaError = ::Class.new(::StandardError)
34
34
 
35
35
  # Error raised during initialization of a contract that has no schema defined
36
- SchemaMissingError = Class.new(StandardError) do
36
+ SchemaMissingError = ::Class.new(::StandardError) do
37
37
  # @api private
38
38
  def initialize(klass)
39
39
  super("#{klass} cannot be instantiated without a schema defined")
@@ -50,8 +50,8 @@ module Dry
50
50
  # @see https://dry-rb.org/gems/dry-schema/params/
51
51
  #
52
52
  # @api public
53
- def params(*external_schemas, &block)
54
- define(:Params, external_schemas, &block)
53
+ def params(*external_schemas, &)
54
+ define(:Params, external_schemas, &)
55
55
  end
56
56
 
57
57
  # Define a JSON schema for your contract
@@ -62,8 +62,8 @@ module Dry
62
62
  # @see https://dry-rb.org/gems/dry-schema/json/
63
63
  #
64
64
  # @api public
65
- def json(*external_schemas, &block)
66
- define(:JSON, external_schemas, &block)
65
+ def json(*external_schemas, &)
66
+ define(:JSON, external_schemas, &)
67
67
  end
68
68
 
69
69
  # Define a plain schema for your contract
@@ -74,8 +74,8 @@ module Dry
74
74
  # @see https://dry-rb.org/gems/dry-schema/
75
75
  #
76
76
  # @api public
77
- def schema(*external_schemas, &block)
78
- define(:schema, external_schemas, &block)
77
+ def schema(*external_schemas, &)
78
+ define(:schema, external_schemas, &)
79
79
  end
80
80
 
81
81
  # Define a rule for your contract
@@ -115,8 +115,8 @@ module Dry
115
115
  # @return [Contract]
116
116
  #
117
117
  # @api public
118
- def build(options = EMPTY_HASH, &block)
119
- Class.new(self, &block).new(**options)
118
+ def build(options = EMPTY_HASH, &)
119
+ Class.new(self, &).new(**options)
120
120
  end
121
121
 
122
122
  # @api private
@@ -41,9 +41,9 @@ module Dry
41
41
  #
42
42
  # @api public
43
43
  class Contract
44
- include Dry::Equalizer(:schema, :rules, :messages, inspect: false)
44
+ include ::Dry::Equalizer(:schema, :rules, :messages, inspect: false)
45
45
 
46
- extend Dry::Initializer
46
+ extend ::Dry::Initializer
47
47
  extend ClassInterface
48
48
 
49
49
  config.messages.top_namespace = DEFAULT_ERRORS_NAMESPACE
@@ -90,7 +90,9 @@ module Dry
90
90
  # @api public
91
91
  # rubocop: disable Metrics/AbcSize
92
92
  def call(input, context = EMPTY_HASH)
93
- context_map = Concurrent::Map.new.tap do |map|
93
+ validate_input_type(input)
94
+
95
+ context_map = ::Concurrent::Map.new.tap do |map|
94
96
  default_context.each { |key, value| map[key] = value }
95
97
  context.each { |key, value| map[key] = value }
96
98
  end
@@ -161,6 +163,12 @@ module Dry
161
163
  def messages
162
164
  self.class.messages
163
165
  end
166
+
167
+ def validate_input_type(input)
168
+ return if input.is_a?(::Hash)
169
+
170
+ raise ::ArgumentError, "Input must be a Hash. #{input.class} was given."
171
+ end
164
172
  end
165
173
  end
166
174
  end
@@ -117,8 +117,8 @@ module Dry
117
117
  end
118
118
 
119
119
  # @api private
120
- def with(new_opts, &block)
121
- self.class.new(_contract, **_options, **new_opts, &block)
120
+ def with(new_opts, &)
121
+ self.class.new(_contract, **_options, **new_opts, &)
122
122
  end
123
123
 
124
124
  # Return default (first) key name
@@ -216,15 +216,14 @@ module Dry
216
216
  # Forward to the underlying contract
217
217
  #
218
218
  # @api private
219
- def method_missing(meth, *args, &block)
219
+ def method_missing(meth, ...)
220
220
  # yes, we do want to delegate to private methods too
221
221
  if _contract.respond_to?(meth, true)
222
- _contract.__send__(meth, *args, &block)
222
+ _contract.__send__(meth, ...)
223
223
  else
224
224
  super
225
225
  end
226
226
  end
227
- ruby2_keywords(:method_missing) if respond_to?(:ruby2_keywords, true)
228
227
  end
229
228
  end
230
229
  end
@@ -59,7 +59,7 @@ module Dry
59
59
  end
60
60
  end
61
61
 
62
- Dry::Schema.load_extensions(:hints)
62
+ ::Dry::Schema.load_extensions(:hints)
63
63
 
64
64
  Result.prepend(ResultExtensions)
65
65
  end
@@ -24,7 +24,7 @@ module Dry
24
24
  #
25
25
  # @api public
26
26
  class Result
27
- include Dry::Monads::Result::Mixin
27
+ include ::Dry::Monads::Result::Mixin
28
28
 
29
29
  # Returns a result monad
30
30
  #
@@ -27,7 +27,7 @@ module Dry
27
27
 
28
28
  # @api private
29
29
  def initialize(path = ROOT_PATH)
30
- @path = Dry::Schema::Path[path]
30
+ @path = ::Dry::Schema::Path[path]
31
31
  @opts = EMPTY_ARRAY.dup
32
32
  end
33
33
 
@@ -29,8 +29,8 @@ module Dry
29
29
  # @see Macro
30
30
  #
31
31
  # @api public
32
- def register_macro(name, *args, &block)
33
- macros.register(name, *args, &block)
32
+ def register_macro(...)
33
+ macros.register(...)
34
34
  self
35
35
  end
36
36
  end
@@ -80,8 +80,8 @@ module Dry
80
80
  # @return [Macros]
81
81
  #
82
82
  # @api public
83
- def self.register(name, *args, &block)
84
- container.register(name, *args, &block)
83
+ def self.register(name, ...)
84
+ container.register(name, ...)
85
85
  self
86
86
  end
87
87
 
@@ -6,7 +6,7 @@ module Dry
6
6
  #
7
7
  # @api public
8
8
  class Message < Schema::Message
9
- include Dry::Equalizer(:text, :path, :meta)
9
+ include ::Dry::Equalizer(:text, :path, :meta)
10
10
 
11
11
  # The error message text
12
12
  #
@@ -3,7 +3,7 @@
3
3
  module Dry
4
4
  module Validation
5
5
  module Messages
6
- FULL_MESSAGE_WHITESPACE = Dry::Schema::MessageCompiler::FULL_MESSAGE_WHITESPACE
6
+ FULL_MESSAGE_WHITESPACE = ::Dry::Schema::MessageCompiler::FULL_MESSAGE_WHITESPACE
7
7
 
8
8
  # Resolve translated messages from failure arguments
9
9
  #
@@ -30,11 +30,11 @@ module Dry
30
30
  # @api public
31
31
  def call(message:, tokens:, path:, meta: EMPTY_HASH)
32
32
  case message
33
- when Symbol
33
+ when ::Symbol
34
34
  Message[->(**opts) { message(message, path: path, tokens: tokens, **opts) }, path, meta]
35
- when String
35
+ when ::String
36
36
  Message[->(**opts) { [message_text(message, path: path, **opts), meta] }, path, meta]
37
- when Hash
37
+ when ::Hash
38
38
  meta = message.dup
39
39
  text = meta.delete(:text) { |key|
40
40
  raise ArgumentError, <<~STR
@@ -114,7 +114,7 @@ module Dry
114
114
 
115
115
  def parse_token(token)
116
116
  case token
117
- when Array
117
+ when ::Array
118
118
  token.join(", ")
119
119
  else
120
120
  token
@@ -10,7 +10,7 @@ module Dry
10
10
  #
11
11
  # @api public
12
12
  class Result
13
- include Dry::Equalizer(:schema_result, :context, :errors, inspect: false)
13
+ include ::Dry::Equalizer(:schema_result, :context, :errors, inspect: false)
14
14
 
15
15
  # Build a new result
16
16
  #
@@ -197,20 +197,18 @@ module Dry
197
197
  super
198
198
  end
199
199
 
200
- if RUBY_VERSION >= "2.7"
201
- # Pattern matching
202
- #
203
- # @api private
204
- def deconstruct_keys(keys)
205
- values.deconstruct_keys(keys)
206
- end
200
+ # Pattern matching
201
+ #
202
+ # @api private
203
+ def deconstruct_keys(keys)
204
+ values.deconstruct_keys(keys)
205
+ end
207
206
 
208
- # Pattern matching
209
- #
210
- # @api private
211
- def deconstruct
212
- [values, context.each.to_h]
213
- end
207
+ # Pattern matching
208
+ #
209
+ # @api private
210
+ def deconstruct
211
+ [values, context.each.to_h]
214
212
  end
215
213
 
216
214
  private
@@ -13,7 +13,7 @@ module Dry
13
13
  #
14
14
  # @api public
15
15
  class Rule < Function
16
- include Dry::Equalizer(:keys, :block, inspect: false)
16
+ include ::Dry::Equalizer(:keys, :block, inspect: false)
17
17
 
18
18
  # @!attribute [r] keys
19
19
  # @return [Array<Symbol, String, Hash>]
@@ -127,7 +127,7 @@ module Dry
127
127
 
128
128
  def add_macro_from_hash(macros, spec)
129
129
  spec.each do |k, v|
130
- macros << [k, v.is_a?(Array) ? v : [v]]
130
+ macros << [k, v.is_a?(::Array) ? v : [v]]
131
131
  end
132
132
  end
133
133
  end
@@ -7,7 +7,7 @@ module Dry
7
7
  class Path
8
8
  # @api private
9
9
  def multi_value?
10
- last.is_a?(Array)
10
+ last.is_a?(::Array)
11
11
  end
12
12
 
13
13
  # @api private
@@ -12,8 +12,8 @@ module Dry
12
12
  #
13
13
  # @api public
14
14
  class Values
15
- include Enumerable
16
- include Dry::Equalizer(:data)
15
+ include ::Enumerable
16
+ include ::Dry::Equalizer(:data)
17
17
 
18
18
  # Schema's result output
19
19
  #
@@ -46,8 +46,8 @@ module Dry
46
46
  return data.dig(*args) if args.size > 1
47
47
 
48
48
  case (key = args[0])
49
- when Symbol, String, Array, Hash
50
- keys = Schema::Path[key].to_a
49
+ when ::Symbol, ::String, ::Array, ::Hash
50
+ keys = ::Dry::Schema::Path[key].to_a
51
51
 
52
52
  return data.dig(*keys) unless keys.last.is_a?(Array)
53
53
 
@@ -55,28 +55,24 @@ module Dry
55
55
  vals = self.class.new(data.dig(*keys))
56
56
  vals.fetch_values(*last) { nil }
57
57
  else
58
- raise ArgumentError, "+key+ must be a valid path specification"
58
+ raise ::ArgumentError, "+key+ must be a valid path specification"
59
59
  end
60
60
  end
61
61
 
62
62
  # @api public
63
63
  # rubocop: disable Metrics/PerceivedComplexity
64
64
  def key?(key, hash = data)
65
- return hash.key?(key) if key.is_a?(Symbol)
65
+ return hash.key?(key) if key.is_a?(::Symbol)
66
66
 
67
67
  Schema::Path[key].reduce(hash) do |a, e|
68
- if e.is_a?(Array)
69
- result = e.all? { |k| key?(k, a) }
70
- return result
71
- elsif e.is_a?(Symbol) && a.is_a?(Array)
72
- return false
73
- elsif a.nil?
74
- return false
75
- elsif a.is_a?(String)
68
+ if e.is_a?(::Array)
69
+ return e.all? { |k| key?(k, a) }
70
+ elsif (e.is_a?(::Symbol) && a.is_a?(::Array)) || a.nil? || a.is_a?(::String)
76
71
  return false
77
72
  else
78
- return false unless a.is_a?(Array) ? (e >= 0 && e < a.size) : a.key?(e)
73
+ return false unless a.is_a?(::Array) ? (e >= 0 && e < a.size) : a.key?(e)
79
74
  end
75
+
80
76
  a[e]
81
77
  end
82
78
  true
@@ -91,14 +87,13 @@ module Dry
91
87
  private
92
88
 
93
89
  # @api private
94
- def method_missing(meth, *args, &block)
90
+ def method_missing(meth, ...)
95
91
  if data.respond_to?(meth)
96
- data.public_send(meth, *args, &block)
92
+ data.public_send(meth, ...)
97
93
  else
98
94
  super
99
95
  end
100
96
  end
101
- ruby2_keywords(:method_missing) if respond_to?(:ruby2_keywords, true)
102
97
  end
103
98
  end
104
99
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Validation
5
- VERSION = "1.10.0"
5
+ VERSION = "1.11.0"
6
6
  end
7
7
  end
@@ -64,8 +64,8 @@ module Dry
64
64
  #
65
65
  # @api public
66
66
  #
67
- def self.Contract(options = EMPTY_HASH, &block)
68
- Contract.build(options, &block)
67
+ def self.Contract(options = EMPTY_HASH, &)
68
+ Contract.build(options, &)
69
69
  end
70
70
 
71
71
  # This is needed by Macros::Registrar
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-04 00:00:00.000000000 Z
11
+ date: 2025-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -30,54 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.0'
34
- - - "<"
35
- - !ruby/object:Gem::Version
36
- version: '2'
33
+ version: '1.1'
37
34
  type: :runtime
38
35
  prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
38
  - - "~>"
42
39
  - !ruby/object:Gem::Version
43
- version: '1.0'
44
- - - "<"
45
- - !ruby/object:Gem::Version
46
- version: '2'
40
+ version: '1.1'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: dry-initializer
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: '3.0'
47
+ version: '3.2'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - "~>"
59
53
  - !ruby/object:Gem::Version
60
- version: '3.0'
54
+ version: '3.2'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: dry-schema
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: '1.12'
68
- - - "<"
59
+ - - "~>"
69
60
  - !ruby/object:Gem::Version
70
- version: '2'
61
+ version: '1.14'
71
62
  type: :runtime
72
63
  prerelease: false
73
64
  version_requirements: !ruby/object:Gem::Requirement
74
65
  requirements:
75
- - - ">="
76
- - !ruby/object:Gem::Version
77
- version: '1.12'
78
- - - "<"
66
+ - - "~>"
79
67
  - !ruby/object:Gem::Version
80
- version: '2'
68
+ version: '1.14'
81
69
  - !ruby/object:Gem::Dependency
82
70
  name: zeitwerk
83
71
  requirement: !ruby/object:Gem::Requirement
@@ -92,48 +80,6 @@ dependencies:
92
80
  - - "~>"
93
81
  - !ruby/object:Gem::Version
94
82
  version: '2.6'
95
- - !ruby/object:Gem::Dependency
96
- name: bundler
97
- requirement: !ruby/object:Gem::Requirement
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: '0'
109
- - !ruby/object:Gem::Dependency
110
- name: rake
111
- requirement: !ruby/object:Gem::Requirement
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- version: '0'
116
- type: :development
117
- prerelease: false
118
- version_requirements: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: '0'
123
- - !ruby/object:Gem::Dependency
124
- name: rspec
125
- requirement: !ruby/object:Gem::Requirement
126
- requirements:
127
- - - ">="
128
- - !ruby/object:Gem::Version
129
- version: '0'
130
- type: :development
131
- prerelease: false
132
- version_requirements: !ruby/object:Gem::Requirement
133
- requirements:
134
- - - ">="
135
- - !ruby/object:Gem::Version
136
- version: '0'
137
83
  description: Validation library
138
84
  email:
139
85
  - piotr.solnica@gmail.com
@@ -176,7 +122,8 @@ metadata:
176
122
  changelog_uri: https://github.com/dry-rb/dry-validation/blob/main/CHANGELOG.md
177
123
  source_code_uri: https://github.com/dry-rb/dry-validation
178
124
  bug_tracker_uri: https://github.com/dry-rb/dry-validation/issues
179
- post_install_message:
125
+ rubygems_mfa_required: 'true'
126
+ post_install_message:
180
127
  rdoc_options: []
181
128
  require_paths:
182
129
  - lib
@@ -184,15 +131,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
184
131
  requirements:
185
132
  - - ">="
186
133
  - !ruby/object:Gem::Version
187
- version: 2.7.0
134
+ version: '3.1'
188
135
  required_rubygems_version: !ruby/object:Gem::Requirement
189
136
  requirements:
190
137
  - - ">="
191
138
  - !ruby/object:Gem::Version
192
139
  version: '0'
193
140
  requirements: []
194
- rubygems_version: 3.1.6
195
- signing_key:
141
+ rubygems_version: 3.3.27
142
+ signing_key:
196
143
  specification_version: 4
197
144
  summary: Validation library
198
145
  test_files: []