Class Jabber::XMPPStanza
In: lib/xmpp4r/xmppstanza.rb
Parent: XMPPElement

root class of all Jabber XML elements

Methods

answer   answer   error   from   from=   id   id=   normalize   set_from   set_id   set_to   set_type   to   to=   type   type=  

Public Class methods

Compose a response by doing the following:

  • Create a new XMPPStanza of the same subclass with the same element-name
  • Import xmppstanza if import is true
  • Swap ‘to’ and ‘from
  • Copy ‘id
  • Does not take care about the type

Attention: Be careful when answering to stanzas with type == :error - answering to an error may generate another error on the other side, which could be leading to a ping-pong effect quickly!

xmppstanza:[XMPPStanza] source
import:[true or false] Copy attributes and children of source
result:[XMPPStanza] answer stanza

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 30
30:     def XMPPStanza.answer(xmppstanza, import=true)
31:       x = xmppstanza.class.new
32:       if import
33:         x.import(xmppstanza)
34:       end
35:       x.from = xmppstanza.to
36:       x.to = xmppstanza.from
37:       x.id = xmppstanza.id
38:       x
39:     end

Public Instance methods

Compose a response of this XMPPStanza (see XMPPStanza.answer)

result:[XMPPStanza] New constructed stanza

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 51
51:     def answer(import=true)
52:       XMPPStanza.answer(self, import)
53:     end

Return the first <error/> child

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 43
43:     def error
44:       first_element('error')
45:     end

get the from attribute

return:[String] the element‘s from attribute

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 91
91:     def from
92:       (a = attribute('from')).nil? ? a : JID.new(a.value)
93:     end

set the from attribute

v:[String] the value from set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 99
 99:     def from= (v)
100:       add_attribute('from', v ? v.to_s : nil)
101:     end

get the id attribute

return:[String] the element‘s id attribute

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 116
116:     def id
117:       (a = attribute('id')).nil? ? a : a.value
118:     end

set the id attribute

v:[String] the value id set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 124
124:     def id= (v)
125:       add_attribute('id', v.to_s)
126:     end

Makes some changes to the structure of an XML element to help it respect the specification. For example, in a message, we should have <subject/> < <body/> < { rest of tags }

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 59
59:     def normalize
60:     end

set the from attribute (chaining-friendly)

v:[String] the value from set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 107
107:     def set_from(v)
108:       add_attribute('from', v ? v.to_s : nil)
109:       self
110:     end

set the id attribute (chaining-friendly)

v:[String] the value id set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 132
132:     def set_id(v)
133:       add_attribute('id', v.to_s)
134:       self
135:     end

set the to attribute (chaining-friendly)

v:[String] the value to set

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 82
82:     def set_to(v)
83:       self.to = v
84:       self
85:     end

set the type attribute (chaining-friendly)

v:[String] the value type set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 157
157:     def set_type(v)
158:       add_attribute('type', v)
159:       self
160:     end

get the to attribute

return:[String] the element‘s to attribute

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 66
66:     def to
67:       (a = attribute('to')).nil? ? a : JID.new(a.value)
68:     end

set the to attribute

v:[String] the value to set

[Source]

    # File lib/xmpp4r/xmppstanza.rb, line 74
74:     def to= (v)
75:       add_attribute('to', v ? v.to_s : nil)
76:     end

get the type attribute

return:[String] the element‘s type attribute

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 141
141:     def type
142:       (a = attribute('type')).nil? ? a : a.value
143:     end

set the type attribute

v:[String] the value type set

[Source]

     # File lib/xmpp4r/xmppstanza.rb, line 149
149:     def type= (v)
150:       add_attribute('type', v)
151:     end

[Validate]