Class: FakeSmith
- Inherits:
-
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_all ⇒ Object
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
|
.logger ⇒ Object
72
73
74
|
# File 'lib/fake_smith.rb', line 72
def self.logger
@logger ||= FakeSmith::Logger.new
end
|
.reply_handlers ⇒ Object
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_queues ⇒ Object
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
|