class Liebre::Actor::Consumer::Resources::Config

Attributes

spec[R]

Public Class Methods

new(spec) click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 7
def initialize spec
  @spec = spec
end

Public Instance Methods

bind() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 19
def bind
  spec.fetch(:bind, {})
end
dead_exchange() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 28
def dead_exchange
  {:name => error_name,
   :type => "fanout",
   :opts => raw_exchange.fetch(:opts, {})}
end
dead_queue() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 23
def dead_queue
  {:name => error_name,
   :opts => raw_queue.fetch(:opts, {})}
end
exchange() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 15
def exchange
  raw_exchange
end
queue() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 11
def queue
  raw_queue.merge(:opts => dead_letter_opts)
end

Private Instance Methods

dead_letter_opts() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 36
def dead_letter_opts
  raw_queue.fetch(:opts, {}).dup.tap do |opts|
    opts[:arguments] = opts.
      fetch(:arguments, {}).
      merge("x-dead-letter-exchange" => error_name)
  end
end
error_name() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 44
def error_name
  @error_name ||= begin
    raw_name = spec.fetch(:queue).fetch(:name)
    "#{raw_name}-error"
  end
end
raw_exchange() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 51
def raw_exchange
  spec.fetch(:exchange)
end
raw_queue() click to toggle source
# File lib/liebre/actor/consumer/resources/config.rb, line 55
def raw_queue
  spec.fetch(:queue)
end