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.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_allObject



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

.loggerObject



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

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

.reply_handlersObject



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_queuesObject



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