Class Jabber::Roster::XRosterItem
In: lib/xmpp4r/roster/x/roster.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

Class containing an <item/> element

The ‘name’ attribute has been renamed to ‘iname’ here as ‘name’ is already used by REXML::Element for the element‘s name. It‘s still name=’…’ in XML.

This is all a bit analoguous to Jabber::RosterItem, used by Jabber::IqQueryRoster. But this class lacks the subscription and ask attributes.

Methods

action   action=   groups   groups=   iname   iname=   jid   jid=   new  

Public Class methods

Construct a new roster item

jid:[JID] Jabber ID
iname:[String] Name in the roster

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 44
44:       def initialize(jid=nil, iname=nil)
45:         super()
46:         self.jid = jid
47:         self.iname = iname
48:       end

Public Instance methods

Get action for this roster item

  • :add
  • :modify
  • :delete
result:[Symbol] (defaults to :add according to JEP-0144)

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 87
87:       def action
88:         case attributes['action']
89:           when 'modify' then :modify
90:           when 'delete' then :delete
91:           else :add
92:         end
93:       end

Set action for this roster item (see action)

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 98
 98:       def action=(a)
 99:         case a
100:           when :modify then attributes['action'] = 'modify'
101:           when :delete then attributes['action'] = 'delete'
102:           else attributes['action'] = 'add'
103:         end
104:       end

Get groups the item belongs to

result:[Array] of [String] The groups

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 109
109:       def groups
110:         result = []
111:         each_element('group') { |group|
112:           result.push(group.text)
113:         }
114:         result
115:       end

Set groups the item belongs to, deletes old groups first.

See JEP 0083 for nested groups

ary:[Array] New groups, duplicate values will be removed

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 123
123:       def groups=(ary)
124:         # Delete old group elements
125:         delete_elements('group')
126:         
127:         # Add new group elements
128:         ary.uniq.each { |group|
129:           add_element('group').text = group
130:         }
131:       end

Get name of roster item

names can be set by the roster‘s owner himself

return:[String]

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 55
55:       def iname
56:         attributes['name']
57:       end

Set name of roster item

val:[String] Name for this item

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 62
62:       def iname=(val)
63:         attributes['name'] = val
64:       end

Get JID of roster item Resource of the JID will not be stripped

return:[JID]

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 70
70:       def jid
71:         JID::new(attributes['jid'])
72:       end

Set JID of roster item

val:[JID] or nil

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 77
77:       def jid=(val)
78:         attributes['jid'] = val.nil? ? nil : val.to_s
79:       end

[Validate]