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