Class: Jabber::Roster::XRosterItem
- Inherits:
-
XMPPElement
- Object
- REXML::Element
- XMPPElement
- Jabber::Roster::XRosterItem
- Defined in:
- lib/xmpp4r/roster/x/roster.rb
Overview
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.
Direct Known Subclasses
Instance Method Summary collapse
-
#action ⇒ Object
- Get action for this roster item * :add * :modify * :delete result
- Symbol
-
(defaults to :add according to JEP-0144).
-
#action=(a) ⇒ Object
Set action for this roster item (see action).
-
#groups ⇒ Object
- Get groups the item belongs to result
- Array
-
of [String] The groups.
-
#groups=(ary) ⇒ Object
Set groups the item belongs to, deletes old groups first.
-
#iname ⇒ Object
Get name of roster item.
-
#iname=(val) ⇒ Object
- Set name of roster item val
- String
-
Name for this item.
-
#initialize(jid = nil, iname = nil) ⇒ XRosterItem
constructor
- Construct a new roster item jid
- JID
- Jabber ID iname
- String
-
Name in the roster.
-
#jid ⇒ Object
- Get JID of roster item Resource of the JID will not be stripped return
-
[JID].
-
#jid=(val) ⇒ Object
- Set JID of roster item val
- JID
-
or nil.
Methods inherited from XMPPElement
class_for_name_xmlns, #clone, force_xmlns, force_xmlns?, import, name_xmlns, name_xmlns_for_class, #parent=, #set_xml_lang, #typed_add, #xml_lang, #xml_lang=
Methods inherited from REXML::Element
#==, #delete_elements, #each_elements, #first_element, #first_element_content, #first_element_text, #import, import, #replace_element_content, #replace_element_text, #typed_add
Constructor Details
#initialize(jid = nil, iname = nil) ⇒ XRosterItem
Construct a new roster item
- jid
- JID
-
Jabber ID
- iname
- String
-
Name in the roster
44 45 46 47 48 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 44 def initialize(jid=nil, iname=nil) super() self.jid = jid self.iname = iname end |
Instance Method Details
#action ⇒ Object
Get action for this roster item
-
:add
-
:modify
-
:delete
- result
- Symbol
-
(defaults to :add according to JEP-0144)
87 88 89 90 91 92 93 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 87 def action case attributes['action'] when 'modify' then :modify when 'delete' then :delete else :add end end |
#action=(a) ⇒ Object
Set action for this roster item (see action)
98 99 100 101 102 103 104 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 98 def action=(a) case a when :modify then attributes['action'] = 'modify' when :delete then attributes['action'] = 'delete' else attributes['action'] = 'add' end end |
#groups ⇒ Object
Get groups the item belongs to
- result
- Array
-
of [String] The groups
109 110 111 112 113 114 115 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 109 def groups result = [] each_element('group') { |group| result.push(group.text) } result end |
#groups=(ary) ⇒ Object
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
123 124 125 126 127 128 129 130 131 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 123 def groups=(ary) # Delete old group elements delete_elements('group') # Add new group elements ary.uniq.each { |group| add_element('group').text = group } end |
#iname ⇒ Object
Get name of roster item
names can be set by the roster’s owner himself
- return
- String
55 56 57 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 55 def iname attributes['name'] end |
#iname=(val) ⇒ Object
Set name of roster item
- val
- String
-
Name for this item
62 63 64 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 62 def iname=(val) attributes['name'] = val end |
#jid ⇒ Object
Get JID of roster item Resource of the JID will not be stripped
- return
- JID
70 71 72 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 70 def jid JID.new(attributes['jid']) end |
#jid=(val) ⇒ Object
Set JID of roster item
- val
- JID
-
or nil
77 78 79 |
# File 'lib/xmpp4r/roster/x/roster.rb', line 77 def jid=(val) attributes['jid'] = val.nil? ? nil : val.to_s end |