Class Jabber::XMPPStanza
In: lib/xmpp4r/xmppstanza.rb
Parent: XMPPElement
Message Presence XMPPStanza Iq XMPPElement ErrorResponse X IqQuery JabberError ComponentAuthenticationFailure ArgumentError InvalidChatState SOCKS5Error ServerError NoNameXmlnsRegistered ServerDisconnected ClientAuthenticationFailure Connection Client Component Connection Client Singleton IdGenerator Comparable JID Enumerable CallbackList Items Publish StandardError REXML::Element Stream XMPPElement Location IqFeature StreamHost IqSiFile IqSiFileRange IqSi StreamHostUsed XRosterItem RosterItem C Body HTML UserItem XMUCUserInvite Configuration Retract IqPubSub Item IqPubSubOwner Event Subscription Unsubscribe Tune XDataField XDataReported XDataTitle XDataInstructions Feature Item Identity IqVcard PubSub::ServiceHelper Helper Helper SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IqQuery IqQueryBytestreams IqQueryRoster IqQueryVersion IqQueryRPC IqQueryMUCOwner IqQueryMUCAdmin IqQueryDiscoItems IqQueryDiscoInfo IqQueryLastActivity IBB IBBTarget IBBInitiator RosterXItem XRoster RosterX X XDelay XMUC XMUCUser XData Responder SimpleResponder Iq IqCommand XMLRPC::ParserWriterChooseMixin Client Server XMLRPC::ParseContentType XMLRPC::BasicServer MUCClient SimpleMUCClient MUC::UserItem XMUCUserItem IqQueryMUCAdminItem XParent SubscriptionConfig NodeConfig OwnerNodeConfig EventItems ServiceHelper OAuthServiceHelper NodeHelper EventItem Base Anonymous DigestMD5 Plain FileSource Base Bot Callback StreamParser Semaphore SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper Responder Helper Listener MUCBrowser NodeBrowser ListenerMocker Helper Responder Helper 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/location/helper/helper.rb lib/xmpp4r/location/location.rb UserLocation lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation 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/roster/x/roster.rb lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb Roster lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb lib/xmpp4r/version/iq/version.rb Version lib/xmpp4r/command/iq/command.rb lib/xmpp4r/command/helper/responder.rb Command lib/xmpp4r/caps/helper/helper.rb lib/xmpp4r/caps/c.rb Caps lib/xmpp4r/reliable.rb Reliable lib/xmpp4r/delay/x/delay.rb Delay 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/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/helper/oauth_service_helper.rb lib/xmpp4r/pubsub/children/event.rb lib/xmpp4r/pubsub/iq/pubsub.rb lib/xmpp4r/pubsub/children/retract.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 OAuthPubSubStreamHelper PubSub lib/xmpp4r/httpbinding/client.rb HTTPBinding lib/xmpp4r/tune/helper/helper.rb lib/xmpp4r/tune/tune.rb UserTune lib/xmpp4r/sasl.rb SASL lib/xmpp4r/test/listener_mocker.rb Test lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/discovery/helper/helper.rb lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/helper/responder.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/last/helper/helper.rb lib/xmpp4r/last/iq/last.rb LastActivity lib/xmpp4r/framework/base.rb lib/xmpp4r/framework/bot.rb Framework lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber dot/m_110_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]