Sha256: cd31e2e6dabbf2936f9192da2dcea4443d81ffcae5c069c13b83e799af277ddc
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module Blather class Stanza < XMPPNode @@registered_callbacks = [] def self.registered_callbacks @@registered_callbacks end class_inheritable_array :callback_heirarchy def self.register(callback_type, name = nil, xmlns = nil) @@registered_callbacks << callback_type self.callback_heirarchy ||= [] self.callback_heirarchy.unshift callback_type name = name || self.name || callback_type super name, xmlns end def self.next_id @@last_id ||= 0 @@last_id += 1 'blather%04x' % @@last_id end def self.import(node) self.new(node.element_name).inherit(node) end def self.new(elem_name = nil) elem = super elem.id = next_id XML::Document.new.root = elem elem end def error? self.type == :error end def reply elem = self.copy(true) elem.to, elem.from = self.from, self.to elem end def reply! self.to, self.from = self.from, self.to self end def id=(id) attributes.remove :id self['id'] = id if id end def id self['id'] end def to=(to) attributes.remove :to self['to'] = to.to_s if to end def to JID.new(self['to']) if self['to'] end def from=(from) attributes.remove :from self['from'] = from.to_s if from end def from JID.new(self['from']) if self['from'] end def type=(type) attributes.remove :type self['type'] = type.to_s end def type self['type'].to_sym if self['type'] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sprsquish-blather-0.1 | lib/blather/core/stanza.rb |