lutaml-model 0.8.80 → 0.8.81

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8375b9ceb21e41c8f236b2e96728983065a6b547f31401686ab5b9b520db2d8d
4
- data.tar.gz: 3e9f7da096049d3cf0472a18782f014341df12b8ae0e0394dcab18a24de73c9b
3
+ metadata.gz: 75aa028ab12c011d2d3c90b27d176d7096bcb7f0b09dbb521adf01d79dba8df1
4
+ data.tar.gz: 523a5d23381afdfb840d7256855ea6e51ca04377dee765d5d215764bd4967af0
5
5
  SHA512:
6
- metadata.gz: 8c925f539d5fdb6ca0e57dae30b6e3b4fe8ed162fbfdb8dc66f04661c885399eefdd99259a7f3067b9a98cab678fb6b9b3d5176418e6d80c7d2ec2b58eea86aa
7
- data.tar.gz: 8673fafc5fc984374916bf509e855ce69dcfd89134149d9e348b7f56eede5b95b6e4e0eca064c1cc0dfdcb169aecf27b47a75251a4cd3dc7c356c92ef05da317
6
+ metadata.gz: 7a2723bfe0a8f6ef1049b5b5d3c5e987832f0397a12fc5f96b57bf0b74b0c2aeb5b9797d89591665fb2dd96f05724a4dcb764437ff332efc3ce2f4c484f79360
7
+ data.tar.gz: a3812ee1c47c9633617dc07e8cfc2ed8cd102279039c4f76389d1dc490f1eaad07f3351bba192daefbf37d7f2132b72f84a036d70890c7e6a4d87fb65591a322
@@ -206,14 +206,16 @@ module Lutaml
206
206
  def kv_group_build(rows, doc, format, register, options)
207
207
  setters = []
208
208
  children = []
209
- absent = []
209
+ # Lazy: the present-key hot path never pushes, and this runs
210
+ # once per hydrated model instance.
211
+ absent = nil
210
212
  rows.each do |rule, attr, kind, type, child_rows, child_register|
211
213
  # One hash pass per row: fetch with a sentinel distinguishes
212
214
  # absent keys from present-nil values (both read as nil), so
213
215
  # the separate string_or_symbol_key? probe goes away.
214
216
  v = Lutaml::Model::Utils.fetch_str_or_sym(doc, rule.name, MISSING)
215
217
  if v.equal?(MISSING)
216
- absent << rule
218
+ (absent ||= []) << rule
217
219
  next
218
220
  end
219
221
 
@@ -256,7 +258,7 @@ module Lutaml
256
258
  end
257
259
  instance = model_class.new(lutaml_register: register)
258
260
  setters.each { |name, value| instance.public_send(name, value) }
259
- absent.each do |rule|
261
+ absent&.each do |rule|
260
262
  process_mapping_rule(doc, instance, format, rule, options, nil)
261
263
  end
262
264
  children.each do |child|
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lutaml
4
4
  module Model
5
- VERSION = "0.8.80"
5
+ VERSION = "0.8.81"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lutaml-model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.80
4
+ version: 0.8.81
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.