module ActiveModelSerializers::Adapter

def lookup(adapter)

Raises:
  • (UnknownAdapterError) -

Returns:
  • (ActiveModelSerializers::Adapter) - subclass of Adapter

Parameters:
  • adapter (String, Symbol, Class) -- name to fetch adapter by
def lookup(adapter)
  # 1. return if is a class
  return adapter if adapter.is_a?(Class)
  adapter_name = adapter.to_s.underscore
  # 2. return if registered
  adapter_map.fetch(adapter_name) do
    # 3. try to find adapter class from environment
    adapter_class = find_by_name(adapter_name)
    register(adapter_name, adapter_class)
    adapter_class
  end
rescue NameError, ArgumentError => e
  failure_message =
    "NameError: #{e.message}. Unknown adapter: #{adapter.inspect}. Valid adapters are: #{adapters}"
  raise UnknownAdapterError, failure_message, e.backtrace
end