foobara 0.0.55 → 0.0.56
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc60d4f3abb03f4cb398aca513da228aaaf2359941a9d6873d970004b8faf1a8
|
4
|
+
data.tar.gz: d94f3b0f676dcf2a69ae1acdbad58efa0dc0ff8626f77de6219ca55b23ac7e41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6348c488613dfb77695af95e1951a0e373787a8277bcee39e26495ee5b1c66f46e8f30a46c24ae7db4050bade755a0fbf181a2618de0f149308c752660fe7352
|
7
|
+
data.tar.gz: 6fe896d06734768e017dfc21753d7de90da00fdde88a5822900876f2030e84c04539fddc0ecc9bf7eb638b4ef9e745c9aafd8afa0826c97dc115ce9029cce46b
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.4.
|
1
|
+
3.4.2
|
data/CHANGELOG.md
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Foobara
|
2
|
+
module BuiltinTypes
|
3
|
+
module Attributes
|
4
|
+
module Transformers
|
5
|
+
class RemoveUnexpectedAttributes < Value::Transformer
|
6
|
+
class << self
|
7
|
+
def requires_parent_declaration_data?
|
8
|
+
true
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def applicable?(hash)
|
13
|
+
Thread.foobara_var_get(:foobara_ignore_unexpected_attributes) && unexpected_attributes(hash).any?
|
14
|
+
end
|
15
|
+
|
16
|
+
def transform(hash)
|
17
|
+
hash.except(*unexpected_attributes(hash))
|
18
|
+
end
|
19
|
+
|
20
|
+
def unexpected_attributes(hash)
|
21
|
+
hash.keys - parent_declaration_data[:element_type_declarations].keys
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -15,11 +15,11 @@ module Foobara
|
|
15
15
|
parse(string)
|
16
16
|
end
|
17
17
|
|
18
|
-
private
|
19
|
-
|
20
18
|
NOT_DELIMITED_REGEX = /\A(?<year>\d{4})(?<month>\d{2})(?<day>\d{2})\z/
|
21
19
|
DELIMITED_REGEX = /\A(?<year>\d{4,})(?<delimiter>[\/\\.|_:;-])(?<month>\d{1,2})\k<delimiter>(?<day>\d{1,2})\z/
|
22
20
|
|
21
|
+
private
|
22
|
+
|
23
23
|
def parse(string)
|
24
24
|
match = NOT_DELIMITED_REGEX.match(string) || DELIMITED_REGEX.match(string)
|
25
25
|
|
data/projects/model/src/model.rb
CHANGED
@@ -171,7 +171,7 @@ module Foobara
|
|
171
171
|
attr_accessor :mutable
|
172
172
|
|
173
173
|
def initialize(attributes = nil, options = {})
|
174
|
-
allowed_options = %i[validate mutable]
|
174
|
+
allowed_options = %i[validate mutable ignore_unexpected_attributes]
|
175
175
|
invalid_options = options.keys - allowed_options
|
176
176
|
|
177
177
|
unless invalid_options.empty?
|
@@ -180,6 +180,12 @@ module Foobara
|
|
180
180
|
# :nocov:
|
181
181
|
end
|
182
182
|
|
183
|
+
if options[:ignore_unexpected_attributes]
|
184
|
+
Thread.foobara_with_var(:foobara_ignore_unexpected_attributes, true) do
|
185
|
+
return initialize(attributes, options.except(:ignore_unexpected_attributes))
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
183
189
|
validate = options[:validate]
|
184
190
|
|
185
191
|
if attributes.nil?
|
@@ -189,6 +195,14 @@ module Foobara
|
|
189
195
|
# :nocov:
|
190
196
|
end
|
191
197
|
else
|
198
|
+
if Thread.foobara_var_get(:foobara_ignore_unexpected_attributes)
|
199
|
+
outcome = attributes_type.process_value(attributes)
|
200
|
+
|
201
|
+
if outcome.success?
|
202
|
+
attributes = outcome.result
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
192
206
|
self.mutable = true
|
193
207
|
attributes.each_pair do |attribute_name, value|
|
194
208
|
write_attribute(attribute_name, value)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foobara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.56
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miles Georgi
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-02-
|
10
|
+
date: 2025-02-17 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: bigdecimal
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- projects/builtin_types/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/desugarizers/move_required_from_element_types_to_root.rb
|
72
72
|
- projects/builtin_types/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/array_of_symbols.rb
|
73
73
|
- projects/builtin_types/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/array_with_valid_attribute_names.rb
|
74
|
+
- projects/builtin_types/src/attributes/transformers/remove_unexpected_attributes.rb
|
74
75
|
- projects/builtin_types/src/big_decimal/casters/integer.rb
|
75
76
|
- projects/builtin_types/src/big_decimal/casters/string.rb
|
76
77
|
- projects/builtin_types/src/boolean/casters/numeric.rb
|