class Emque::Consuming::Adapter

Attributes

name[RW]
namespace[RW]
options[RW]

Public Class Methods

new(name, opts = {}) click to toggle source
# File lib/emque/consuming/adapter.rb, line 16
def initialize(name, opts = {})
  self.name = name
  fetch_and_load
  self.options = default_options.merge(opts)
end

Private Instance Methods

fetch_and_load() click to toggle source
# File lib/emque/consuming/adapter.rb, line 27
def fetch_and_load
  klass = Inflecto.camelize(name.to_s)

  unless Emque::Consuming::Adapters.const_defined?(klass)
    require "emque/consuming/adapters/#{name}"
  end

  self.namespace = Inflecto.constantize(
    "Emque::Consuming::Adapters::#{klass}"
  )

  namespace.load
rescue LoadError
  raise AdapterConfigurationError, "Unable to load requested adapter"
rescue NameError => e
  $stdout.puts e.inspect
  raise AdapterConfigurationError, "Unknown consuming adapter"
end