lib/adhearsion/events.rb in adhearsion-2.0.0 vs lib/adhearsion/events.rb in adhearsion-2.0.1

- old
+ new

@@ -45,18 +45,21 @@ def reinitialize_queue! GirlFriday.shutdown! if queue? # TODO: Extract number of threads to use from Adhearsion.config @queue = GirlFriday::WorkQueue.new 'main_queue', :error_handler => ErrorHandler do |message| - begin - handle_message message - rescue Exception => e - ErrorHandler.new.handle e - end + work message end end + def work(message) + handle_message message + rescue => e + raise if message.type == :exception + trigger :exception, e + end + def handle_message(message) trigger_handler message.type, message.object end def draw(&block) @@ -80,10 +83,11 @@ super && throw(:pass) end class ErrorHandler def handle(exception) - Events.trigger :exception, exception + logger.error "Exception encountered in exception handler!" + logger.error exception end end end end