Module: Lutaml::Xml::Schema::Xsd::UninitializedGuard

Defined in:
lib/lutaml/xsd/xsd_model_extensions.rb

Overview

Attributes added by reopening don’t participate in XML deserialization, so they get Lutaml::Model::UninitializedClass (a truthy sentinel). Override getters to return nil instead.

Class Method Summary collapse

Class Method Details

.guard(klass, *names) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'lib/lutaml/xsd/xsd_model_extensions.rb', line 11

def self.guard(klass, *names)
  mod = Module.new do
    names.each do |name|
      define_method(name) do
        val = super()
        ::Lutaml::Model::Utils.uninitialized?(val) ? nil : val
      end
    end
  end
  klass.prepend(mod)
end