Class Jabber::Roster::XRosterItem
In: lib/xmpp4r/roster/x/roster.rb
Parent: REXML::Element
XMLStanza Message Presence Iq REXML::Element X IqQuery Error StreamHost IqSiFileRange IqSiFile StreamHostUsed IqSi IqFeature XRosterItem RosterItem XMUCUserItem XMUCUserInvite XDataField XDataReported XDataTitle XDataInstructions Feature Identity Item IqVcard Singleton IdGenerator Connection Client Component Comparable JID RuntimeError AuthenticationFailure ErrorException SOCKS5Error Stream SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IqQuery IqQueryBytestreams IqQueryVersion IqQueryRoster IqQueryDiscoItems IqQueryDiscoInfo IBB IBBTarget IBBInitiator Responder SimpleResponder X XRoster XMUCUser XMUC XDelay XData MUCClient SimpleMUCClient Base DigestMD5 Plain FileSource StreamParser SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper MUCBrowser Helper Helper lib/xmpp4r/authenticationfailure.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/connection.rb lib/xmpp4r/iq.rb lib/xmpp4r/jid.rb lib/xmpp4r/xmlstanza.rb lib/xmpp4r/errorexception.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/error.rb lib/xmpp4r/component.rb lib/xmpp4r/query.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/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.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 lib/xmpp4r/version/iq/version.rb lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb Version lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb lib/xmpp4r/roster/x/roster.rb Roster 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/helper/simplemucclient.rb MUC lib/xmpp4r/sasl.rb SASL lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber Module: Jabber

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=   import   iname   iname=   jid   jid=   new  

Public Class methods

Create new XRosterItem from REXML::Element

item:[REXML::Element] source element to copy attributes and children from

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 67
67:       def XRosterItem.import(item)
68:         XRosterItem::new.import(item)
69:       end

Construct a new roster item

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

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 58
58:       def initialize(jid=nil, iname=nil)
59:         super('item')
60:         self.jid = jid
61:         self.iname = iname
62:       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 108
108:       def action
109:         case attributes['action']
110:           when 'modify' then :modify
111:           when 'delete' then :delete
112:           else :add
113:         end
114:       end

Set action for this roster item (see action)

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 119
119:       def action=(a)
120:         case a
121:           when :modify then attributes['action'] = 'modify'
122:           when :delete then attributes['action'] = 'delete'
123:           else attributes['action'] = 'add'
124:         end
125:       end

Get groups the item belongs to

result:[Array] of [String] The groups

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 130
130:       def groups
131:         result = []
132:         each_element('group') { |group|
133:           result.push(group.text)
134:         }
135:         result
136:       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 144
144:       def groups=(ary)
145:         # Delete old group elements
146:         delete_elements('group')
147:         
148:         # Add new group elements
149:         ary.uniq.each { |group|
150:           add_element('group').text = group
151:         }
152:       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 76
76:       def iname
77:         attributes['name']
78:       end

Set name of roster item

val:[String] Name for this item

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 83
83:       def iname=(val)
84:         attributes['name'] = val
85:       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 91
91:       def jid
92:         JID::new(attributes['jid'])
93:       end

Set JID of roster item

val:[JID] or nil

[Source]

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

[Validate]