class SimpleMessaging::MessageQueue
Public Class Methods
driver_name()
click to toggle source
# File lib/simple_messaging/message_queue.rb, line 38 def self.driver_name return @driver_name if @driver_name return ENV["MESSAGING_DRIVER"].strip if ENV["MESSAGING_DRIVER"] messaging_config_file = Pathname.new(Dir.pwd).join('config', 'messaging.yml').to_s if File.exist? messaging_config_file messaging_configs = YAML.load(File.open(messaging_config_file).read) messaging_configs[self.environment]['driver'] else raise "Messaging driver isn't set" end end
driver_name=(driver_name)
click to toggle source
# File lib/simple_messaging/message_queue.rb, line 13 def self.driver_name=(driver_name) if driver_name != @driver_name @driver_class = nil @queues = nil @driver_name = driver_name.to_s end end
instance(name)
click to toggle source
# File lib/simple_messaging/message_queue.rb, line 21 def self.instance(name) @queues ||= {} return @queues[name] if @queues[name] @driver_class ||= case self.driver_name when 'sqs' MessageQueue::SQS when 'rabbit' MessageQueue::Rabbit else raise "Messaging driver '#{driver_name}' not implemented" end @queues[name] = @driver_class.new(name) end
unregister_queue(name)
click to toggle source
Deriving classes need to implement the following methods def enqueue(message) def poll(&block) def pop(&block)
# File lib/simple_messaging/message_queue.rb, line 9 def self.unregister_queue(name) @queues[name] = nil end
Protected Class Methods
environment()
click to toggle source
# File lib/simple_messaging/message_queue.rb, line 53 def self.environment if defined? Rails Rails.env else ENV["RAILS_ENV"] || "development" end end
Protected Instance Methods
queue_name(name)
click to toggle source
# File lib/simple_messaging/message_queue.rb, line 61 def queue_name(name) "#{queue_identifier}-#{name}" end