class Alephant::Publisher::Queue::Options

Constants

CACHE_OPTS
QUEUE_OPTS
WRITER_OPTS

Attributes

cache[R]
queue[R]
writer[R]

Public Class Methods

new() click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 42
def initialize
  @queue  = {}
  @writer = {}
  @cache  = {}
end

Public Instance Methods

add_cache(opts) click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 56
def add_cache(opts)
  execute(@cache, CACHE_OPTS, opts)
end
add_queue(opts) click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 48
def add_queue(opts)
  execute(@queue, QUEUE_OPTS, opts)
end
add_writer(opts) click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 52
def add_writer(opts)
  execute(@writer, WRITER_OPTS, opts)
end

Private Instance Methods

execute(instance, type, opts) click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 62
def execute(instance, type, opts)
  validate(type, opts)
  instance.merge!(opts)
rescue InvalidKeySpecifiedError => e
  logger.metric "QueueOptionsInvalidKeySpecified"
  logger.error(
    "event"     => "QueueOptionsKeyInvalid",
    "class"     => e.class,
    "message"   => e.message,
    "backtrace" => e.backtrace.join.to_s,
    "method"    => "#{self.class}#validate"
  )
  puts e.message
end
validate(type, opts) click to toggle source
# File lib/alephant/publisher/queue/options.rb, line 77
def validate(type, opts)
  opts.each do |key, _value|
    unless type.include? key.to_sym
      raise InvalidKeySpecifiedError, "The key '#{key}' is invalid"
    end
  end
end