class Emittance::Resque::Dispatcher

The Resque dispatcher for Emittance.

Constants

DEFAULT_QUEUE
EVENT_FANOUT_JOB
MethodCallRegistration

Attributes

default_queue[W]

Public Class Methods

default_queue() click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 31
def default_queue
  @default_queue || DEFAULT_QUEUE
end

Private Class Methods

_process_event(event) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 37
def _process_event(event)
  serialized_event = serialize_event(event)

  enqueue_fanout_job(serialized_event)
end
_register(_identifier, _params = {}, &_callback) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 43
def _register(_identifier, _params = {}, &_callback)
  raise InvalidCallbackError, 'Emittance::Resque cannot accept closures as callbacks at this time'
end
_register_method_call(identifier, object, method_name, params = {}) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 47
def _register_method_call(identifier, object, method_name, params = {})
  validate_method_call object, method_name

  registrations_for(identifier) << new_registration(object, method_name, params)
end
enqueue_fanout_job(event) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 59
def enqueue_fanout_job(event)
  ::Resque.enqueue EVENT_FANOUT_JOB, event
end
new_registration(object, method_name, params = {}) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 53
def new_registration(object, method_name, params = {})
  queue = params[:queue]

  MethodCallRegistration.new(object.name, method_name, queue)
end
serialize_event(event) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 63
def serialize_event(event)
  Emittance::Resque::EventSerializer.serialize event
end
validate_method_call(object, _method_name) click to toggle source
# File lib/emittance/resque/dispatcher.rb, line 67
def validate_method_call(object, _method_name)
  error_msg = 'Emittance::Resque can only call methods on classes and modules'
  raise InvalidCallbackError, error_msg unless object.is_a?(Module)
end