Module: Lutaml::Xml::AdapterLoader
- Defined in:
- lib/lutaml/xml/adapter_loader.rb
Overview
Adapter loader for XML format.
Handles XML-specific adapter file loading and class resolution. Registered with FormatRegistry so Configuration can delegate XML adapter loading without hardcoded XML references.
Class Method Summary collapse
-
.class_for(_adapter, type) ⇒ Class
Resolve the adapter class for XML.
-
.load_adapter_file(_adapter, type) ⇒ Object
Load the XML adapter file.
-
.load_moxml_adapter(type_name, _adapter_name) ⇒ Object
Load the Moxml adapter for XML.
-
.to_class_name(str) ⇒ String
Convert string to class name.
Class Method Details
.class_for(_adapter, type) ⇒ Class
Resolve the adapter class for XML
40 41 42 |
# File 'lib/lutaml/xml/adapter_loader.rb', line 40 def self.class_for(_adapter, type) Lutaml::Xml::Adapter.const_get(to_class_name(type)) end |
.load_adapter_file(_adapter, type) ⇒ Object
Load the XML adapter file
15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/lutaml/xml/adapter_loader.rb', line 15 def self.load_adapter_file(_adapter, type) adapter_path = if Lutaml::Model::RuntimeCompatibility.opal? "lutaml/xml/adapter/#{type}" else File.join(File.dirname(__FILE__), "adapter", type) end require adapter_path rescue LoadError raise Lutaml::Model::UnknownAdapterTypeError.new("xml", type), cause: nil end |
.load_moxml_adapter(type_name, _adapter_name) ⇒ Object
Load the Moxml adapter for XML
31 32 33 |
# File 'lib/lutaml/xml/adapter_loader.rb', line 31 def self.load_moxml_adapter(type_name, _adapter_name) Moxml::Adapter.load(type_name) end |
.to_class_name(str) ⇒ String
Convert string to class name
48 49 50 |
# File 'lib/lutaml/xml/adapter_loader.rb', line 48 def self.to_class_name(str) str.to_s.split("_").map(&:capitalize).join end |