lib/dispatch-rider/dispatcher.rb in dispatch-rider-0.0.7 vs lib/dispatch-rider/dispatcher.rb in dispatch-rider-0.1.0
- old
+ new
@@ -5,39 +5,20 @@
module DispatchRider
class Dispatcher
extend Forwardable
- require 'dispatch-rider/dispatcher/named_process'
- include NamedProcess
-
attr_reader :handler_registrar
def_delegators :handler_registrar, :register, :fetch, :unregister
def initialize
@handler_registrar = Registrars::Handler.new
- @error_handler = method(:default_error_handler)
end
- def on_error(&block)
- @error_handler = block
- end
-
def dispatch(message)
- with_named_process(message.subject) do
- handler_registrar.fetch(message.subject).process(message.body)
- end
-
+ handler_registrar.fetch(message.subject).new.do_process(message.body)
true # success => true (delete message)
- rescue Exception => exception
- @error_handler.call(message, exception)
- false # failure => false (put message back on queue)
end
- private
-
- def default_error_handler(message, exception)
- raise exception
- end
end
end