Class | Jabber::Roster::RosterItem |
In: |
lib/xmpp4r/roster/iq/roster.rb
|
Parent: | XMPPElement |
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.
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 |
# 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
Get if asking for subscription
result: | [Symbol] nil or :subscribe |
# 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 |
# 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
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 |
# 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] |
# 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 |
# File lib/xmpp4r/roster/iq/roster.rb, line 115 115: def iname=(val) 116: attributes['name'] = val 117: end
Get subscription type of roster item
result: | [Symbol] or [Nil] The following values are valid according to RFC3921: |
# 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 |
# 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