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.3"
Class Method Summary
collapse
Class Method Details
.add_message(queue_name, message) ⇒ Object
58
59
60
61
|
# File 'lib/fake_smith.rb', line 58
def self.add_message(queue_name, message)
messages[queue_name] ||= []
messages[queue_name] << message
end
|
.clear_all ⇒ Object
63
64
65
66
67
|
# File 'lib/fake_smith.rb', line 63
def self.clear_all
clear_subscriptions
clear_messages
clear_logger
end
|
.define_subscription(queue_name, options, &blk) ⇒ Object
44
45
46
47
|
# File 'lib/fake_smith.rb', line 44
def self.define_subscription(queue_name, options, &blk)
subscriptions[queue_name] = blk
subscriptions_options[queue_name] = options
end
|
.get_messages(queue_name) ⇒ Object
54
55
56
|
# File 'lib/fake_smith.rb', line 54
def self.get_messages(queue_name)
messages[queue_name] ||= []
end
|
.logger ⇒ Object
73
74
75
|
# File 'lib/fake_smith.rb', line 73
def self.logger
@logger ||= FakeSmith::Logger.new
end
|
.reply_handlers ⇒ Object
31
32
33
|
# File 'lib/fake_smith.rb', line 31
def self.reply_handlers
@reply_handlers ||= {}
end
|
.send_message(queue_name, payload, receiver) ⇒ Object
35
36
37
38
39
40
41
42
|
# File 'lib/fake_smith.rb', line 35
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
26
27
28
29
|
# File 'lib/fake_smith.rb', line 26
def self.set_reply_handler(queue_name, &blk)
@reply_handlers ||= {}
@reply_handlers[queue_name] = blk
end
|
.subscribed_queues ⇒ Object
69
70
71
|
# File 'lib/fake_smith.rb', line 69
def self.subscribed_queues
subscriptions.keys
end
|
.undefine_subscription(queue_name, &blk) ⇒ Object
49
50
51
52
|
# File 'lib/fake_smith.rb', line 49
def self.undefine_subscription(queue_name, &blk)
subscriptions.delete(queue_name)
blk.call
end
|