Class Jabber::XMPPStanza
In: lib/xmpp4r/xmppstanza.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq Singleton IdGenerator XMPPElement X IqQuery Error Connection Client Component Client Comparable JID RuntimeError AuthenticationFailure ErrorException NoNameXmlnsRegistered SOCKS5Error REXML::Element Stream SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator XMPPElement StreamHost IqSiFileRange IqSiFile StreamHostUsed IqSi XRosterItem RosterItem IqFeature XMUCUserItem XMUCUserInvite IqPubSub Items Subscription IqPubSubOwner Item Event Feature Item Identity XDataField XDataReported XDataTitle XDataInstructions IqVcard SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IqQuery IqQueryBytestreams IqQueryVersion IqQueryRoster IqQueryMUCOwner IqQueryRPC IqQueryDiscoItems IqQueryDiscoInfo IBB IBBTarget IBBInitiator Responder SimpleResponder Iq IqCommand RosterXItem XRoster RosterX X XMUCUser XMUC XDelay XData XParent MUCClient SimpleMUCClient XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer Base DigestMD5 Plain ServiceHelper NodeHelper FileSource CallbackList Callback Semaphore StreamParser SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Responder Helper MUCBrowser NodeBrowser Helper Helper lib/xmpp4r/authenticationfailure.rb lib/xmpp4r/xmppstanza.rb lib/xmpp4r/callbacks.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/connection.rb lib/xmpp4r/iq.rb lib/xmpp4r/jid.rb lib/xmpp4r/errorexception.rb lib/xmpp4r/client.rb lib/xmpp4r/stream.rb lib/xmpp4r/semaphore.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/x.rb lib/xmpp4r/error.rb lib/xmpp4r/component.rb lib/xmpp4r/query.rb lib/xmpp4r/xmppelement.rb lib/xmpp4r/message.rb lib/xmpp4r/presence.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb Bytestreams XParent lib/xmpp4r/version/iq/version.rb lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb Version lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb lib/xmpp4r/roster/x/roster.rb Roster lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/helper/mucclient.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/iq/mucowner.rb lib/xmpp4r/muc/helper/simplemucclient.rb MUC lib/xmpp4r/rpc/helper/server.rb lib/xmpp4r/rpc/helper/client.rb lib/xmpp4r/rpc/iq/rpc.rb RPC lib/xmpp4r/sasl.rb SASL lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/pubsub/stanzas/subscription.rb lib/xmpp4r/pubsub/helper/servicehelper.rb lib/xmpp4r/pubsub/stanzas/item.rb lib/xmpp4r/pubsub/helper/nodehelper.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/stanzas/event.rb lib/xmpp4r/pubsub/helper/nodebrowser.rb lib/xmpp4r/pubsub/stanzas/items.rb PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber dot/m_80_0.png

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)
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)
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]