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 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.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