Class Jabber::Roster::RosterItem
In: lib/xmpp4r/roster/iq/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 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=   iname   iname=   jid   jid=   new   subscription   subscription=  

Public Class methods

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 95
 95:       def initialize(jid=nil, iname=nil, subscription=nil, ask=nil)
 96:         super()
 97:         self.jid = jid
 98:         self.iname = iname
 99:         self.subscription = subscription
100:         self.ask = ask
101:       end

Public Instance methods

Get if asking for subscription

result:[Symbol] nil or :subscribe

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 170
170:       def ask
171:         case attributes['ask']
172:           when 'subscribe' then :subscribe
173:           else nil
174:         end
175:       end

Set if asking for subscription

val:[Symbol] nil or :subscribe

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 180
180:       def ask=(val)
181:         case val
182:           when :subscribe then attributes['ask'] = 'subscribe'
183:           else attributes['ask'] = nil
184:         end
185:       end

Get groups the item belongs to

result:[Array] of [String] The groups

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 190
190:       def groups
191:         result = []
192:         each_element('group') { |group|
193:           result.push(group.text)
194:         }
195:         result.uniq
196:       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 204
204:       def groups=(ary)
205:         # Delete old group elements
206:         delete_elements('group')
207:         
208:         # Add new group elements
209:         ary.uniq.each { |group|
210:           add_element('group').text = group
211:         }
212:       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 108
108:       def iname
109:         attributes['name']
110:       end

Set name of roster item

val:[String] Name for this item

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 115
115:       def iname=(val)
116:         attributes['name'] = val
117:       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 123
123:       def jid
124:         (a = attributes['jid']) ? JID::new(a) : nil
125:       end

Set JID of roster item

val:[JID] or nil

[Source]

     # File lib/xmpp4r/roster/iq/roster.rb, line 130
130:       def jid=(val)
131:         attributes['jid'] = val.nil? ? nil : val.to_s
132:       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 142
142:       def subscription
143:         case attributes['subscription']
144:           when 'both' then :both
145:           when 'from' then :from
146:           when 'none' then :none
147:           when 'remove' then :remove
148:           when 'to' then :to
149:           else nil
150:         end
151:       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 156
156:       def subscription=(val)
157:         case val
158:           when :both then attributes['subscription'] = 'both'
159:           when :from then attributes['subscription'] = 'from'
160:           when :none then attributes['subscription'] = 'none'
161:           when :remove then attributes['subscription'] = 'remove'
162:           when :to then attributes['subscription'] = 'to'
163:           else attributes['subscription'] = nil
164:         end
165:       end

[Validate]