class Downstream::Config

Attributes

async_queue[RW]
namespace[W]

Public Instance Methods

namespace() click to toggle source
# File lib/downstream/config.rb, line 10
def namespace
  @namespace ||= "downstream-events"
end
pubsub() click to toggle source
# File lib/downstream/config.rb, line 14
def pubsub
  @pubsub ||= lookup_pubsub(:stateless)
end
pubsub=(value) click to toggle source
# File lib/downstream/config.rb, line 18
def pubsub=(value)
  @pubsub = case value
    when String, Symbol
      lookup_pubsub(value)
    else
      value
  end
end

Private Instance Methods

lookup_pubsub(name) click to toggle source
# File lib/downstream/config.rb, line 29
def lookup_pubsub(name)
  klass = name.camelize.safe_constantize if name.is_a?(String)

  klass ||= begin
    require "downstream/pubsub_adapters/#{name}/pubsub"
    "Downstream::#{name.to_s.camelize}::Pubsub".safe_constantize
  end

  raise ArgumentError, "Uknown downstream pubsub adapter: #{name}" unless klass

  klass.new
end