Class: FakeSmith

Inherits:
Object
  • Object
show all
Defined in:
lib/fake_smith.rb,
lib/fake_smith/version.rb

Defined Under Namespace

Classes: Logger, MessageAckedTwiceError, ReceiverDecorator

Constant Summary collapse

VERSION =
"0.6.1"

Class Method Summary collapse

Class Method Details

.add_message(queue_name, message) ⇒ Object



57
58
59
60
# File 'lib/fake_smith.rb', line 57

def self.add_message(queue_name, message)
  messages[queue_name] ||= []
  messages[queue_name] << message
end

.clear_allObject



62
63
64
65
66
# File 'lib/fake_smith.rb', line 62

def self.clear_all
  clear_subscriptions
  clear_messages
  clear_logger
end

.define_subscription(queue_name, options, &blk) ⇒ Object



43
44
45
46
# File 'lib/fake_smith.rb', line 43

def self.define_subscription(queue_name, options, &blk)
  subscriptions[queue_name] = blk
  subscriptions_options[queue_name] = options
end

.get_messages(queue_name) ⇒ Object



53
54
55
# File 'lib/fake_smith.rb', line 53

def self.get_messages(queue_name)
  messages[queue_name] ||= []
end

.loggerObject



72
73
74
# File 'lib/fake_smith.rb', line 72

def self.logger
  @logger ||= FakeSmith::Logger.new
end

.reply_handlersObject



30
31
32
# File 'lib/fake_smith.rb', line 30

def self.reply_handlers
  @reply_handlers ||= {}
end

.send_message(queue_name, payload, receiver) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/fake_smith.rb', line 34

def self.send_message(queue_name, payload, receiver)
  raise "no subscribers on queue: #{queue_name}" unless subscriptions[queue_name]
  receiver = ReceiverDecorator.new(receiver)
  opts = subscriptions_options[queue_name]
  auto_ack = opts.key?(:auto_ack) ? opts[:auto_ack] : true
  receiver.ack if auto_ack
  subscriptions[queue_name].call(payload, receiver)
end

.set_reply_handler(queue_name, &blk) ⇒ Object



25
26
27
28
# File 'lib/fake_smith.rb', line 25

def self.set_reply_handler(queue_name, &blk)
  @reply_handlers ||= {}
  @reply_handlers[queue_name] = blk
end

.subscribed_queuesObject



68
69
70
# File 'lib/fake_smith.rb', line 68

def self.subscribed_queues
  subscriptions.keys
end

.undefine_subscription(queue_name, &blk) ⇒ Object



48
49
50
51
# File 'lib/fake_smith.rb', line 48

def self.undefine_subscription(queue_name, &blk)
  subscriptions.delete(queue_name)
  blk.call
end