Class | Jabber::Roster::RosterItem |
In: |
lib/xmpp4r/roster/iq/roster.rb
|
Parent: | REXML::Element |
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.
Create new RosterItem from REXML::Element
item: | [REXML::Element] source element to copy attributes and children from |
# 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 |
# 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
Get if asking for subscription
result: | [Symbol] nil or :subscribe |
# 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 |
# 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 |
# 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 |
# 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] |
# 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 |
# File lib/xmpp4r/roster/iq/roster.rb, line 142 142: def iname=(val) 143: attributes['name'] = val 144: 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 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 |
# 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