lib/blather/client/client.rb in sprsquish-blather-0.4.3 vs lib/blather/client/client.rb in sprsquish-blather-0.4.4
- old
+ new
@@ -78,10 +78,11 @@
def run
raise 'not setup!' unless setup?
klass = @setup[0].node ? Blather::Stream::Client : Blather::Stream::Component
klass.start self, *@setup
end
+ alias_method :connect, :run
##
# Register a filter to be run before or after the handler chain is run.
# * +type+ - the type of filter. Must be +:before+ or +:after+
# * +guards+ - guards that should be checked before the filter is called
@@ -139,11 +140,11 @@
@jid = JID.new(jid) if jid
self.jid.node ? client_post_init : ready!
end
def unbind # :nodoc:
- EM.stop if EM.reactor_running?
+ call_handler_for(:disconnected, nil) || (EM.reactor_running? && EM.stop)
end
def receive_data(stanza) # :nodoc:
catch(:halt) do
run_filters :before, stanza
@@ -174,10 +175,10 @@
Blather.logger.warn "Handler for type \"#{type}\" will never be called as it's not a registered type" unless current_handlers.include?(type)
check_guards guards
end
def current_handlers
- [:ready] + Stanza.handler_list + BlatherError.handler_list
+ [:ready, :disconnected] + Stanza.handler_list + BlatherError.handler_list
end
def setup_initial_handlers # :nodoc:
register_handler :error do |err|
raise err