Class Jabber::Roster::XRosterItem
In: lib/xmpp4r/roster/x/roster.rb
Parent: XMPPElement

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.

Methods

action   action=   groups   groups=   iname   iname=   jid   jid=   new  

Public Class methods

Construct a new roster item

jid:[JID] Jabber ID
iname:[String] Name in the roster

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 44
44:       def initialize(jid=nil, iname=nil)
45:         super()
46:         self.jid = jid
47:         self.iname = iname
48:       end

Public Instance methods

Get action for this roster item

  • :add
  • :modify
  • :delete
result:[Symbol] (defaults to :add according to JEP-0144)

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 87
87:       def action
88:         case attributes['action']
89:           when 'modify' then :modify
90:           when 'delete' then :delete
91:           else :add
92:         end
93:       end

Set action for this roster item (see action)

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 98
 98:       def action=(a)
 99:         case a
100:           when :modify then attributes['action'] = 'modify'
101:           when :delete then attributes['action'] = 'delete'
102:           else attributes['action'] = 'add'
103:         end
104:       end

Get groups the item belongs to

result:[Array] of [String] The groups

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 109
109:       def groups
110:         result = []
111:         each_element('group') { |group|
112:           result.push(group.text)
113:         }
114:         result
115:       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

[Source]

     # File lib/xmpp4r/roster/x/roster.rb, line 123
123:       def groups=(ary)
124:         # Delete old group elements
125:         delete_elements('group')
126:         
127:         # Add new group elements
128:         ary.uniq.each { |group|
129:           add_element('group').text = group
130:         }
131:       end

Get name of roster item

names can be set by the roster‘s owner himself

return:[String]

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 55
55:       def iname
56:         attributes['name']
57:       end

Set name of roster item

val:[String] Name for this item

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 62
62:       def iname=(val)
63:         attributes['name'] = val
64:       end

Get JID of roster item Resource of the JID will not be stripped

return:[JID]

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 70
70:       def jid
71:         JID::new(attributes['jid'])
72:       end

Set JID of roster item

val:[JID] or nil

[Source]

    # File lib/xmpp4r/roster/x/roster.rb, line 77
77:       def jid=(val)
78:         attributes['jid'] = val.nil? ? nil : val.to_s
79:       end

[Validate]