anyvali 0.1.7 → 1.0.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.
- checksums.yaml +4 -4
- data/lib/anyvali/schemas/object_schema.rb +10 -3
- data/lib/anyvali/validation_context.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 63d2550741122df6e58425f8b303dfdd81309e5b472c3875764013710e23a44e
|
|
4
|
+
data.tar.gz: 777c2834049e4e5edc34be58ec0f5f1beb39d786eadb07c6060d0dd9aad94c64
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a5a0039b72c7da18f91c941b46dfa15a9af4ec9d406310fb7dc076c9d41a9ef589d3061b64b91efa7913f6bed3eba9c2537b51d02e4d4edc893c63eb21adc324
|
|
7
|
+
data.tar.gz: 361b56d8a346c73a7bf267d346f5f428aa643fc583da4d4e57d106c14d08f410d758daf6723ec5e6a56fba5a710ab1907be5f3db0fb117270ccd29d5bb8e1d9a
|
|
@@ -36,7 +36,8 @@ module AnyVali
|
|
|
36
36
|
node
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
def safe_parse(input, path: [], context: nil)
|
|
39
|
+
def safe_parse(input = nil, path: [], context: nil, **kwargs)
|
|
40
|
+
input = kwargs unless kwargs.empty?
|
|
40
41
|
context ||= ValidationContext.new
|
|
41
42
|
issues = []
|
|
42
43
|
|
|
@@ -51,6 +52,9 @@ module AnyVali
|
|
|
51
52
|
end
|
|
52
53
|
|
|
53
54
|
output = {}
|
|
55
|
+
mode = effective_unknown_keys(context)
|
|
56
|
+
previous_inherited_unknown_keys = context.inherited_unknown_keys
|
|
57
|
+
context.inherited_unknown_keys = mode if %w[strip reject].include?(mode)
|
|
54
58
|
|
|
55
59
|
# Check required fields
|
|
56
60
|
@required_keys.each do |key|
|
|
@@ -102,9 +106,11 @@ module AnyVali
|
|
|
102
106
|
end
|
|
103
107
|
end
|
|
104
108
|
|
|
109
|
+
context.inherited_unknown_keys = previous_inherited_unknown_keys
|
|
110
|
+
|
|
105
111
|
# Handle unknown keys
|
|
106
112
|
unknown = input.keys - @properties.keys
|
|
107
|
-
case
|
|
113
|
+
case mode
|
|
108
114
|
when "reject"
|
|
109
115
|
unknown.each do |key|
|
|
110
116
|
issues << ValidationIssue.new(
|
|
@@ -151,7 +157,8 @@ module AnyVali
|
|
|
151
157
|
|
|
152
158
|
private
|
|
153
159
|
|
|
154
|
-
def effective_unknown_keys
|
|
160
|
+
def effective_unknown_keys(context = nil)
|
|
161
|
+
return context.inherited_unknown_keys if context&.inherited_unknown_keys
|
|
155
162
|
@unknown_keys_explicit ? @unknown_keys : "strip"
|
|
156
163
|
end
|
|
157
164
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: anyvali
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- AnyVali Contributors
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-06-
|
|
11
|
+
date: 2026-06-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|