Class: Jabber::Roster::XRosterItem

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

new(jid=nil, iname=nil)

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

action()

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

action=(a)

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

groups()

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

groups=(ary)

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

iname()

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

iname=(val)

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

jid()

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

jid=(val)

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]