Class | Jabber::Roster::XRosterItem |
In: |
lib/xmpp4r/roster/x/roster.rb
|
Parent: | REXML::Element |
Class containing an <item/> element
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.
This is all a bit analoguous to Jabber::RosterItem, used by Jabber::IqQueryRoster. But this class lacks the subscription and ask attributes.
Create new XRosterItem from REXML::Element
item: | [REXML::Element] source element to copy attributes and children from |
# File lib/xmpp4r/roster/x/roster.rb, line 67 67: def XRosterItem.import(item) 68: XRosterItem::new.import(item) 69: end
Get action for this roster item
result: | [Symbol] (defaults to :add according to JEP-0144) |
# File lib/xmpp4r/roster/x/roster.rb, line 108 108: def action 109: case attributes['action'] 110: when 'modify' then :modify 111: when 'delete' then :delete 112: else :add 113: end 114: 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/x/roster.rb, line 144 144: def groups=(ary) 145: # Delete old group elements 146: delete_elements('group') 147: 148: # Add new group elements 149: ary.uniq.each { |group| 150: add_element('group').text = group 151: } 152: end
Get name of roster item
names can be set by the roster‘s owner himself
return: | [String] |
# File lib/xmpp4r/roster/x/roster.rb, line 76 76: def iname 77: attributes['name'] 78: end
Set name of roster item
val: | [String] Name for this item |
# File lib/xmpp4r/roster/x/roster.rb, line 83 83: def iname=(val) 84: attributes['name'] = val 85: end