dry-schema 1.13.2 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +47 -0
- data/README.md +2 -2
- data/config/errors.yml +10 -0
- data/dry-schema.gemspec +15 -17
- data/lib/dry/schema/config.rb +6 -6
- data/lib/dry/schema/constants.rb +2 -2
- data/lib/dry/schema/dsl.rb +18 -18
- data/lib/dry/schema/extensions/hints/message_compiler_methods.rb +1 -1
- data/lib/dry/schema/extensions/info/schema_compiler.rb +16 -7
- data/lib/dry/schema/extensions/json_schema/schema_compiler.rb +4 -4
- data/lib/dry/schema/extensions/monads.rb +1 -1
- data/lib/dry/schema/extensions/struct.rb +28 -6
- data/lib/dry/schema/key.rb +4 -4
- data/lib/dry/schema/key_coercer.rb +3 -3
- data/lib/dry/schema/key_map.rb +5 -5
- data/lib/dry/schema/key_validator.rb +21 -10
- data/lib/dry/schema/macros/dsl.rb +1 -1
- data/lib/dry/schema/macros/filled.rb +1 -2
- data/lib/dry/schema/macros/hash.rb +1 -1
- data/lib/dry/schema/macros/schema.rb +3 -3
- data/lib/dry/schema/macros/value.rb +12 -12
- data/lib/dry/schema/message.rb +4 -4
- data/lib/dry/schema/message_compiler.rb +8 -8
- data/lib/dry/schema/message_set.rb +8 -8
- data/lib/dry/schema/messages/abstract.rb +12 -12
- data/lib/dry/schema/messages/namespaced.rb +1 -1
- data/lib/dry/schema/messages/template.rb +2 -2
- data/lib/dry/schema/messages/yaml.rb +3 -3
- data/lib/dry/schema/path.rb +12 -12
- data/lib/dry/schema/predicate.rb +4 -4
- data/lib/dry/schema/predicate_registry.rb +2 -2
- data/lib/dry/schema/processor.rb +10 -10
- data/lib/dry/schema/processor_steps.rb +1 -1
- data/lib/dry/schema/result.rb +6 -6
- data/lib/dry/schema/rule_applier.rb +1 -1
- data/lib/dry/schema/trace.rb +1 -1
- data/lib/dry/schema/type_container.rb +2 -2
- data/lib/dry/schema/type_registry.rb +1 -1
- data/lib/dry/schema/types.rb +1 -1
- data/lib/dry/schema/types_merger.rb +18 -62
- data/lib/dry/schema/value_coercer.rb +1 -1
- data/lib/dry/schema/version.rb +1 -1
- data/lib/dry/schema.rb +12 -11
- metadata +21 -79
data/lib/dry/schema/version.rb
CHANGED
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",
|
@@ -32,6 +32,7 @@ module Dry
|
|
32
32
|
"#{root}/dry/schema/{constants,errors,version,extensions}.rb",
|
33
33
|
"#{root}/dry/schema/extensions"
|
34
34
|
)
|
35
|
+
loader.do_not_eager_load("#{root}/dry/schema/messages/i18n.rb")
|
35
36
|
loader.inflector.inflect("dsl" => "DSL")
|
36
37
|
end
|
37
38
|
end
|
@@ -63,8 +64,8 @@ module Dry
|
|
63
64
|
# @see DSL.new
|
64
65
|
#
|
65
66
|
# @api public
|
66
|
-
def self.define(
|
67
|
-
DSL.new(
|
67
|
+
def self.define(...)
|
68
|
+
DSL.new(...).call
|
68
69
|
end
|
69
70
|
|
70
71
|
# Define a schema suitable for HTTP params
|
@@ -82,10 +83,10 @@ module Dry
|
|
82
83
|
# @see Schema#define
|
83
84
|
#
|
84
85
|
# @api public
|
85
|
-
def self.Params(**options, &
|
86
|
-
define(**options, processor_type: Params, &
|
86
|
+
def self.Params(**options, &)
|
87
|
+
define(**options, processor_type: Params, &)
|
87
88
|
end
|
88
|
-
singleton_class.
|
89
|
+
singleton_class.alias_method(:Form, :Params)
|
89
90
|
|
90
91
|
# Define a schema suitable for JSON data
|
91
92
|
#
|
@@ -102,8 +103,8 @@ module Dry
|
|
102
103
|
# @see Schema#define
|
103
104
|
#
|
104
105
|
# @api public
|
105
|
-
def self.JSON(**options, &
|
106
|
-
define(**options, processor_type: JSON, &
|
106
|
+
def self.JSON(**options, &)
|
107
|
+
define(**options, processor_type: JSON, &)
|
107
108
|
end
|
108
109
|
|
109
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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: '
|
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: '
|
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: '
|
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: '
|
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
|
-
|
209
|
+
rubygems_mfa_required: 'true'
|
210
|
+
post_install_message:
|
270
211
|
rdoc_options: []
|
271
212
|
require_paths:
|
272
213
|
- lib
|
@@ -274,15 +215,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
274
215
|
requirements:
|
275
216
|
- - ">="
|
276
217
|
- !ruby/object:Gem::Version
|
277
|
-
version: '
|
218
|
+
version: '3.1'
|
278
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
279
220
|
requirements:
|
280
221
|
- - ">="
|
281
222
|
- !ruby/object:Gem::Version
|
282
223
|
version: '0'
|
283
224
|
requirements: []
|
284
|
-
rubygems_version: 3.3.
|
285
|
-
signing_key:
|
225
|
+
rubygems_version: 3.3.27
|
226
|
+
signing_key:
|
286
227
|
specification_version: 4
|
287
228
|
summary: Coercion and validation for data structures
|
288
229
|
test_files: []
|
230
|
+
...
|