Class: Announce::Adapters::ShoryukenAdapter::Subscriber
- Inherits:
-
BaseAdapter::Subscriber
- Object
- BaseAdapter::Subscriber
- Announce::Adapters::ShoryukenAdapter::Subscriber
- Defined in:
- lib/announce/adapters/shoryuken_adapter.rb
Instance Method Summary collapse
- #active_job? ⇒ Boolean
- #register_class(worker_class) ⇒ Object
- #subscribe(worker_class, subject, actions, options) ⇒ Object
Instance Method Details
#active_job? ⇒ Boolean
40 41 42 43 44 45 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 40 def active_job? defined?(::ActiveJob) && defined?(ActiveJob::QueueAdapters::ShoryukenAdapter) && ActiveJob::Base.queue_adapter == ActiveJob::QueueAdapters::ShoryukenAdapter end |
#register_class(worker_class) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 30 def register_class(worker_class) if active_job? Class.new(AnnounceWorker).tap do |jc| jc.class_eval("def job_class; #{worker_class.name}; end") end else worker_class end end |
#subscribe(worker_class, subject, actions, options) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 22 def subscribe(worker_class, subject, actions, ) Array(actions).each do |action| queue_name = Queue.name_for(subject, action) Shoryuken.register_worker(queue_name, register_class(worker_class)) Shoryuken.queues << queue_name end end |