Sha256: 78821b40e2a20185bb129a2eba8accc8e89f4d210dcc638ecec8facada7a58be
Contents?: true
Size: 1.23 KB
Versions: 1
Compression:
Stored size: 1.23 KB
Contents
module Blather module Extensions #:nodoc: module LastActivity #:nodoc: def self.included(base) base.class_eval do @@last_activity = Time.now alias_method :send_data_without_activity, :send_data def send_data(data) @@last_activity = Time.now send_data_without_activity data end end end def last_activity (Time.now - @@last_activity).to_i end def receive_last_activity(stanza) send_data stanza.reply!(last_activity) if stanza.type == 'get' end end #LastActivity class LastActivityStanza < Query #:nodoc: register :last_activity, nil, 'jabber:iq:last' def self.new(type = :get, seconds = nil) elem = super type elem.seconds = seconds elem end def seconds=(seconds) query.attributes.remove :seconds query['seconds'] = seconds.to_i.to_s if seconds end def seconds (query['seconds'] || 0).to_i end def reply(seconds) elem = super() elem.last_activity = seconds end def reply!(seconds) self.last_activity = seconds super() end end #LastActivityStanza end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blather-0.1 | lib/blather/extensions/last_activity.rb |