Class Jabber::XMPPStanza
In: lib/xmpp4r/xmppstanza.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError SOCKS5Error ServerError NoNameXmlnsRegistered ClientAuthenticationFailure Connection Client Component Client Singleton IdGenerator Comparable JID StandardError REXML::Element Stream IqQuery IqQueryVersion IqQueryRoster IqQueryBytestreams IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo Responder SimpleResponder XRosterItem RosterXItem XMPPElement RosterItem IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed C Body HTML UserItem XMUCUserInvite Tune Configuration Items Item IqPubSub Publish Event IqPubSubOwner Subscription Unsubscribe Feature Item Identity XDataField XDataReported XDataTitle XDataInstructions IqVcard XRoster RosterX X XMUC XMUCUser XDelay XData Iq IqCommand SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IBB IBBTarget IBBInitiator XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent Base Anonymous DigestMD5 Plain PubSub::ServiceHelper Helper SubscriptionConfig NodeConfig OwnerNodeConfig EventItems EventItem ServiceHelper NodeHelper FileSource Base Bot CallbackList Callback StreamParser Semaphore Helper Responder SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper MUCBrowser NodeBrowser Responder Helper Helper lib/xmpp4r/message.rb lib/xmpp4r/connection.rb lib/xmpp4r/xmppstanza.rb lib/xmpp4r/iq.rb lib/xmpp4r/callbacks.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/jid.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/semaphore.rb lib/xmpp4r/errors.rb lib/xmpp4r/component.rb lib/xmpp4r/presence.rb lib/xmpp4r/xmppelement.rb lib/xmpp4r/query.rb XParent lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb Bytestreams lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/xhtml/html.rb XHTML lib/xmpp4r/rpc/helper/server.rb lib/xmpp4r/rpc/helper/client.rb lib/xmpp4r/rpc/iq/rpc.rb RPC lib/xmpp4r/muc/iq/mucadminitem.rb lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/item.rb lib/xmpp4r/muc/helper/simplemucclient.rb lib/xmpp4r/muc/iq/mucadmin.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/iq/mucowner.rb lib/xmpp4r/muc/helper/mucclient.rb MUC lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/sasl.rb SASL lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/pubsub/children/item.rb lib/xmpp4r/pubsub/children/configuration.rb lib/xmpp4r/pubsub/children/subscription.rb lib/xmpp4r/pubsub/helper/servicehelper.rb lib/xmpp4r/pubsub/children/unsubscribe.rb lib/xmpp4r/pubsub/children/publish.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/helper/nodebrowser.rb lib/xmpp4r/pubsub/helper/nodehelper.rb lib/xmpp4r/pubsub/children/items.rb lib/xmpp4r/pubsub/children/subscription_config.rb lib/xmpp4r/pubsub/children/node_config.rb PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework Jabber dot/m_99_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.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]