| 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