module Lutaml::Model::Config

def adapter_for(format)

Returns:
  • (Class, nil) - the adapter class or nil

Parameters:
  • format (Symbol) -- the format name
def adapter_for(format)
  AdapterResolver.adapter_for(format)
end

def available_formats

Dynamic format discovery from FormatRegistry
def available_formats
  FormatRegistry.formats
end

def configure

Delegate configure to Configuration
def configure
  yield instance
  self
end

def default_context_id

def default_context_id
  instance.default_context_id
end

def default_context_id=(value)

def default_context_id=(value)
  instance.default_context_id = value
end

def default_register

def default_register
  instance.default_register
end

def default_register=(value)

def default_register=(value)
  instance.default_register = value
end

def define_adapter_type_methods(format)

Parameters:
  • format (Symbol) -- the format name
def define_adapter_type_methods(format)
  return if method_defined?(:"#{format}_adapter_type=")
  # Adapter class getter (returns Class)
  define_method(:"#{format}_adapter") do
    AdapterResolver.adapter_for(format)
  end
  # Adapter class setter (accepts Class)
  define_method(:"#{format}_adapter=") do |adapter_klass|
    AdapterResolver.set_adapter_class(format, adapter_klass)
  end
  # Adapter type name setter (accepts Symbol like :nokogiri)
  define_method(:"#{format}_adapter_type=") do |type_name|
    AdapterResolver.set_adapter_type(format, type_name)
  end
  # Adapter type name getter (returns Symbol or nil)
  define_method(:"#{format}_adapter_type") do
    AdapterResolver.configured_type(format)
  end
end

def instance

Singleton Configuration instance
def instance
  @instance ||= Configuration.new
end

def key_value_formats

Dynamic key-value format discovery from FormatRegistry
def key_value_formats
  FormatRegistry.key_value_formats
end

def mappings_class_for(format)

def mappings_class_for(format)
  instance.mappings_class_for(format)
end

def set_adapter_for(format, adapter)

Parameters:
  • adapter (Class) -- the adapter class
  • format (Symbol) -- the format name
def set_adapter_for(format, adapter)
  AdapterResolver.set_adapter_class(format, adapter)
end

def to_class_name(str)

def to_class_name(str)
  str.to_s.split("_").map(&:capitalize).join
end

def transformer_for(format)

def transformer_for(format)
  instance.transformer_for(format)
end

def with_adapter(**overrides, &)

Other tags:
    Example: Library stacking -
    Example: Testing with a specific adapter -

Returns:
  • (Object) - the block's return value

Other tags:
    Yield: - block within which overrides are active

Parameters:
  • overrides (Hash{Symbol => Symbol}) -- format => adapter type name
def with_adapter(**overrides, &)
  AdapterScope.with(overrides, &)
end