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
43 44 45 46 47 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 43 def active_job? defined?(::ActiveJob) && defined?(ActiveJob::QueueAdapters::ShoryukenAdapter) && ActiveJob::Base.queue_adapter == ActiveJob::QueueAdapters::ShoryukenAdapter end |
#register_class(worker_class) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 33 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
25 26 27 28 29 30 31 |
# File 'lib/announce/adapters/shoryuken_adapter.rb', line 25 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 |