Class Jabber::Roster::RosterItem
In: lib/xmpp4r/roster/iq/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 the <item/> elements of the roster

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.

Methods

ask   ask=   groups   groups=   import   iname   iname=   jid   jid=   new   subscription   subscription=  

Public Class methods

Create new RosterItem from REXML::Element

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

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 126
126:       def RosterItem.import(item)
127:         RosterItem::new.import(item)
128:       end

Construct a new roster item

jid:[JID] Jabber ID
iname:[String] Name in the roster
subscription:[Symbol] Type of subscription (see RosterItem#subscription=)
ask:[Symbol] or [Nil] Can be :subscribe

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 115
115:       def initialize(jid=nil, iname=nil, subscription=nil, ask=nil)
116:         super('item')
117:         self.jid = jid
118:         self.iname = iname
119:         self.subscription = subscription
120:         self.ask = ask
121:       end

Public Instance methods

Get if asking for subscription

result:[Symbol] nil or :subscribe

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 197
197:       def ask
198:         case attributes['ask']
199:           when 'subscribe' then :subscribe
200:           else nil
201:         end
202:       end

Set if asking for subscription

val:[Symbol] nil or :subscribe

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 207
207:       def ask=(val)
208:         case val
209:           when :subscribe then attributes['ask'] = 'subscribe'
210:           else attributes['ask'] = nil
211:         end
212:       end

Get groups the item belongs to

result:[Array] of [String] The groups

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 217
217:       def groups
218:         result = []
219:         each_element('group') { |group|
220:           result.push(group.text)
221:         }
222:         result
223:       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/iq/roster.rb, line 231
231:       def groups=(ary)
232:         # Delete old group elements
233:         delete_elements('group')
234:         
235:         # Add new group elements
236:         ary.uniq.each { |group|
237:           add_element('group').text = group
238:         }
239:       end

Get name of roster item

names can be set by the roster’s owner himself

return:[String]

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 135
135:       def iname
136:         attributes['name']
137:       end

Set name of roster item

val:[String] Name for this item

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 142
142:       def iname=(val)
143:         attributes['name'] = val
144:       end

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

return:[JID]

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 150
150:       def jid
151:         (a = attributes['jid']) ? JID::new(a) : nil
152:       end

Set JID of roster item

val:[JID] or nil

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 157
157:       def jid=(val)
158:         attributes['jid'] = val.nil? ? nil : val.to_s
159:       end

Get subscription type of roster item

result:[Symbol] or [Nil] The following values are valid according to RFC3921:
  • :both
  • :from
  • :none
  • :remove
  • :to

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 169
169:       def subscription
170:         case attributes['subscription']
171:           when 'both' then :both
172:           when 'from' then :from
173:           when 'none' then :none
174:           when 'remove' then :remove
175:           when 'to' then :to
176:           else nil
177:         end
178:       end

Set subscription type of roster item

val:[Symbol] or [Nil] See subscription for possible Symbols

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 183
183:       def subscription=(val)
184:         case val
185:           when :both then attributes['subscription'] = 'both'
186:           when :from then attributes['subscription'] = 'from'
187:           when :none then attributes['subscription'] = 'none'
188:           when :remove then attributes['subscription'] = 'remove'
189:           when :to then attributes['subscription'] = 'to'
190:           else attributes['subscription'] = nil
191:         end
192:       end

[Validate]