class Announce::Adapters::ShoryukenAdapter::Subscriber

Public Instance Methods

active_job?() click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/announce/adapters/shoryuken_adapter.rb, line 25
def subscribe(worker_class, subject, actions, options)
  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