Sha256: 0045971754b8d826a3dc6bd1d98edf07ae7c603088db259a029707855664ea71

Contents?: true

Size: 489 Bytes

Versions: 7

Compression:

Stored size: 489 Bytes

Contents

# frozen_string_literal: true

module AbstractNotifier
  module AsyncAdapters
    class << self
      def lookup(adapter, options = nil)
        return adapter unless adapter.is_a?(Symbol)

        adapter_class_name = adapter.to_s.split("_").map(&:capitalize).join
        AsyncAdapters.const_get(adapter_class_name).new(**(options || {}))
      rescue NameError => e
        raise e.class, "Notifier async adapter :#{adapter} haven't been found", e.backtrace
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
active_delivery-1.2.0 lib/abstract_notifier/async_adapters.rb
active_delivery-1.1.0 lib/abstract_notifier/async_adapters.rb
active_delivery-1.0.0 lib/abstract_notifier/async_adapters.rb
active_delivery-1.0.0.rc2 lib/abstract_notifier/async_adapters.rb
abstract_notifier-0.3.2 lib/abstract_notifier/async_adapters.rb
abstract_notifier-0.3.1 lib/abstract_notifier/async_adapters.rb
abstract_notifier-0.3.0 lib/abstract_notifier/async_adapters.rb