dry-schema 1.13.4 → 1.14.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/README.md +1 -1
  4. data/config/errors.yml +9 -1
  5. data/dry-schema.gemspec +15 -17
  6. data/lib/dry/schema/config.rb +6 -6
  7. data/lib/dry/schema/constants.rb +2 -2
  8. data/lib/dry/schema/dsl.rb +18 -18
  9. data/lib/dry/schema/extensions/hints/message_compiler_methods.rb +1 -1
  10. data/lib/dry/schema/extensions/info/schema_compiler.rb +16 -7
  11. data/lib/dry/schema/extensions/json_schema/schema_compiler.rb +3 -3
  12. data/lib/dry/schema/extensions/monads.rb +1 -1
  13. data/lib/dry/schema/extensions/struct.rb +3 -3
  14. data/lib/dry/schema/key.rb +4 -4
  15. data/lib/dry/schema/key_coercer.rb +3 -3
  16. data/lib/dry/schema/key_map.rb +5 -5
  17. data/lib/dry/schema/key_validator.rb +19 -8
  18. data/lib/dry/schema/macros/dsl.rb +1 -1
  19. data/lib/dry/schema/macros/filled.rb +1 -2
  20. data/lib/dry/schema/macros/hash.rb +1 -1
  21. data/lib/dry/schema/macros/schema.rb +3 -3
  22. data/lib/dry/schema/macros/value.rb +12 -12
  23. data/lib/dry/schema/message.rb +4 -4
  24. data/lib/dry/schema/message_compiler.rb +8 -8
  25. data/lib/dry/schema/message_set.rb +8 -8
  26. data/lib/dry/schema/messages/abstract.rb +12 -12
  27. data/lib/dry/schema/messages/namespaced.rb +1 -1
  28. data/lib/dry/schema/messages/template.rb +2 -2
  29. data/lib/dry/schema/messages/yaml.rb +3 -3
  30. data/lib/dry/schema/path.rb +12 -12
  31. data/lib/dry/schema/predicate.rb +4 -4
  32. data/lib/dry/schema/predicate_registry.rb +2 -2
  33. data/lib/dry/schema/processor.rb +10 -10
  34. data/lib/dry/schema/processor_steps.rb +1 -1
  35. data/lib/dry/schema/result.rb +6 -6
  36. data/lib/dry/schema/rule_applier.rb +1 -1
  37. data/lib/dry/schema/trace.rb +1 -1
  38. data/lib/dry/schema/type_container.rb +2 -2
  39. data/lib/dry/schema/type_registry.rb +1 -1
  40. data/lib/dry/schema/types.rb +1 -1
  41. data/lib/dry/schema/types_merger.rb +18 -62
  42. data/lib/dry/schema/value_coercer.rb +1 -1
  43. data/lib/dry/schema/version.rb +1 -1
  44. data/lib/dry/schema.rb +11 -11
  45. metadata +20 -78
data/lib/dry/schema.rb CHANGED
@@ -12,14 +12,14 @@ module Dry
12
12
  #
13
13
  # @api public
14
14
  module Schema
15
- extend Dry::Core::Extensions
15
+ extend ::Dry::Core::Extensions
16
16
 
17
17
  # @api private
18
18
  def self.loader
19
- @loader ||= Zeitwerk::Loader.new.tap do |loader|
20
- root = File.expand_path("..", __dir__)
19
+ @loader ||= ::Zeitwerk::Loader.new.tap do |loader|
20
+ root = ::File.expand_path("..", __dir__)
21
21
  loader.tag = "dry-schema"
22
- loader.inflector = Zeitwerk::GemInflector.new("#{root}/dry-schema.rb")
22
+ loader.inflector = ::Zeitwerk::GemInflector.new("#{root}/dry-schema.rb")
23
23
  loader.inflector.inflect(
24
24
  "dsl" => "DSL",
25
25
  "yaml" => "YAML",
@@ -64,8 +64,8 @@ module Dry
64
64
  # @see DSL.new
65
65
  #
66
66
  # @api public
67
- def self.define(**options, &block)
68
- DSL.new(**options, &block).call
67
+ def self.define(...)
68
+ DSL.new(...).call
69
69
  end
70
70
 
71
71
  # Define a schema suitable for HTTP params
@@ -83,10 +83,10 @@ module Dry
83
83
  # @see Schema#define
84
84
  #
85
85
  # @api public
86
- def self.Params(**options, &block)
87
- define(**options, processor_type: Params, &block)
86
+ def self.Params(**options, &)
87
+ define(**options, processor_type: Params, &)
88
88
  end
89
- singleton_class.send(:alias_method, :Form, :Params)
89
+ singleton_class.alias_method(:Form, :Params)
90
90
 
91
91
  # Define a schema suitable for JSON data
92
92
  #
@@ -103,8 +103,8 @@ module Dry
103
103
  # @see Schema#define
104
104
  #
105
105
  # @api public
106
- def self.JSON(**options, &block)
107
- define(**options, processor_type: JSON, &block)
106
+ def self.JSON(**options, &)
107
+ define(**options, processor_type: JSON, &)
108
108
  end
109
109
 
110
110
  loader.setup
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.13.4
4
+ version: 1.14.1
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: 2024-05-22 00:00:00.000000000 Z
11
+ date: 2025-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -50,74 +50,56 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '1.0'
54
- - - "<"
55
- - !ruby/object:Gem::Version
56
- version: '2'
53
+ version: '1.1'
57
54
  type: :runtime
58
55
  prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - "~>"
62
59
  - !ruby/object:Gem::Version
63
- version: '1.0'
64
- - - "<"
65
- - !ruby/object:Gem::Version
66
- version: '2'
60
+ version: '1.1'
67
61
  - !ruby/object:Gem::Dependency
68
62
  name: dry-initializer
69
63
  requirement: !ruby/object:Gem::Requirement
70
64
  requirements:
71
65
  - - "~>"
72
66
  - !ruby/object:Gem::Version
73
- version: '3.0'
67
+ version: '3.2'
74
68
  type: :runtime
75
69
  prerelease: false
76
70
  version_requirements: !ruby/object:Gem::Requirement
77
71
  requirements:
78
72
  - - "~>"
79
73
  - !ruby/object:Gem::Version
80
- version: '3.0'
74
+ version: '3.2'
81
75
  - !ruby/object:Gem::Dependency
82
76
  name: dry-logic
83
77
  requirement: !ruby/object:Gem::Requirement
84
78
  requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: '1.4'
88
- - - "<"
79
+ - - "~>"
89
80
  - !ruby/object:Gem::Version
90
- version: '2'
81
+ version: '1.5'
91
82
  type: :runtime
92
83
  prerelease: false
93
84
  version_requirements: !ruby/object:Gem::Requirement
94
85
  requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '1.4'
98
- - - "<"
86
+ - - "~>"
99
87
  - !ruby/object:Gem::Version
100
- version: '2'
88
+ version: '1.5'
101
89
  - !ruby/object:Gem::Dependency
102
90
  name: dry-types
103
91
  requirement: !ruby/object:Gem::Requirement
104
92
  requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- version: '1.7'
108
- - - "<"
93
+ - - "~>"
109
94
  - !ruby/object:Gem::Version
110
- version: '2'
95
+ version: '1.8'
111
96
  type: :runtime
112
97
  prerelease: false
113
98
  version_requirements: !ruby/object:Gem::Requirement
114
99
  requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '1.7'
118
- - - "<"
100
+ - - "~>"
119
101
  - !ruby/object:Gem::Version
120
- version: '2'
102
+ version: '1.8'
121
103
  - !ruby/object:Gem::Dependency
122
104
  name: zeitwerk
123
105
  requirement: !ruby/object:Gem::Requirement
@@ -132,48 +114,6 @@ dependencies:
132
114
  - - "~>"
133
115
  - !ruby/object:Gem::Version
134
116
  version: '2.6'
135
- - !ruby/object:Gem::Dependency
136
- name: bundler
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
139
- - - ">="
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
- type: :development
143
- prerelease: false
144
- version_requirements: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: '0'
149
- - !ruby/object:Gem::Dependency
150
- name: rake
151
- requirement: !ruby/object:Gem::Requirement
152
- requirements:
153
- - - ">="
154
- - !ruby/object:Gem::Version
155
- version: '0'
156
- type: :development
157
- prerelease: false
158
- version_requirements: !ruby/object:Gem::Requirement
159
- requirements:
160
- - - ">="
161
- - !ruby/object:Gem::Version
162
- version: '0'
163
- - !ruby/object:Gem::Dependency
164
- name: rspec
165
- requirement: !ruby/object:Gem::Requirement
166
- requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: '0'
170
- type: :development
171
- prerelease: false
172
- version_requirements: !ruby/object:Gem::Requirement
173
- requirements:
174
- - - ">="
175
- - !ruby/object:Gem::Version
176
- version: '0'
177
117
  description: |+
178
118
  dry-schema provides a DSL for defining schemas with keys and rules that should be applied to
179
119
  values. It supports coercion, input sanitization, custom types and localized error messages
@@ -266,7 +206,8 @@ metadata:
266
206
  changelog_uri: https://github.com/dry-rb/dry-schema/blob/main/CHANGELOG.md
267
207
  source_code_uri: https://github.com/dry-rb/dry-schema
268
208
  bug_tracker_uri: https://github.com/dry-rb/dry-schema/issues
269
- post_install_message:
209
+ rubygems_mfa_required: 'true'
210
+ post_install_message:
270
211
  rdoc_options: []
271
212
  require_paths:
272
213
  - lib
@@ -274,7 +215,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
215
  requirements:
275
216
  - - ">="
276
217
  - !ruby/object:Gem::Version
277
- version: '2.7'
218
+ version: '3.1'
278
219
  required_rubygems_version: !ruby/object:Gem::Requirement
279
220
  requirements:
280
221
  - - ">="
@@ -282,7 +223,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
282
223
  version: '0'
283
224
  requirements: []
284
225
  rubygems_version: 3.3.27
285
- signing_key:
226
+ signing_key:
286
227
  specification_version: 4
287
228
  summary: Coercion and validation for data structures
288
229
  test_files: []
230
+ ...