Class: RabbitJobs::Publisher::Test

Inherits:
Base
  • Object
show all
Defined in:
lib/rabbit_jobs/publisher/test.rb

Overview

Publisher for testing. Stores AMQP messages to array.

Class Method Summary collapse

Class Method Details

.cleanupObject



9
10
11
# File 'lib/rabbit_jobs/publisher/test.rb', line 9

def cleanup
  messages.clear
end

.direct_publish_to(routing_key, payload, ex = {}) ⇒ Object



20
21
22
23
24
# File 'lib/rabbit_jobs/publisher/test.rb', line 20

def direct_publish_to(routing_key, payload, ex = {})
  exchange_name = ex.is_a?(Hash) ? ex[:name] : ex
  messages.push payload: payload, exchange_name: exchange_name.to_s, routing_key: routing_key.to_s
  true
end

.publish_to(routing_key, klass, *params) ⇒ Object



13
14
15
16
17
18
# File 'lib/rabbit_jobs/publisher/test.rb', line 13

def publish_to(routing_key, klass, *params)
  check_amqp_publishing_params(routing_key, klass)

  payload = Job.serialize(klass, *params)
  direct_publish_to(routing_key.to_sym, payload)
end

.purge_queue(*routing_keys) ⇒ Object



26
27
28
29
# File 'lib/rabbit_jobs/publisher/test.rb', line 26

def purge_queue(*routing_keys)
  fail ArgumentError unless routing_keys.present?
  messages.clear
end

.queue_status(routing_key) ⇒ Object



31
32
33
34
# File 'lib/rabbit_jobs/publisher/test.rb', line 31

def queue_status(routing_key)
  check_queue_status_params(routing_key)
  { message_count: messages.count, consumer_count: 0 }
end