Module: Lutaml::Xml::Leptris::PlanWalk
- Defined in:
- lib/lutaml/xml/leptris/plan_walk.rb
Overview
Public consumer surface for the plan fast path: one engine parse + descriptor walk and direct model hydration, bypassing the wrapper-tree construction that dominates large-document consumer paths. The returned object is the mapped model root; collection attributes remain collections on that model.
Class Method Summary collapse
-
.call(model_class, xml, _options = {}) ⇒ Object
Build the plan, walk the document, and hydrate the mapped root.
Class Method Details
.call(model_class, xml, _options = {}) ⇒ Object
Build the plan, walk the document, and hydrate the mapped root. Returns nil when the model is not plan-compilable.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lutaml/xml/leptris/plan_walk.rb', line 15 def call(model_class, xml, = {}) register = Lutaml::Model::Config.default_register plan = PlanCompiler.compile(model_class, register) return nil unless plan document = ::Leptris::XML.parse(xml) root = document.root return nil unless root && root.name == plan[:tree][:name] PlanHydrator.call(model_class, plan, plan[:descriptor].walk(root), node: root) end |