dry-validation 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
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: []