class Emittance::Resque::Dispatcher
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