Class: Jabber::Roster::RosterItem

Class | Jabber::Roster::RosterItem
In: | lib/xmpp4r/roster/iq/roster.rb
Parent: | XMPPElement

Class containing the <item/> elements of the roster

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.

### Methods

ask ask= groups groups= iname iname= jid jid= new subscription subscription=

### Public Class methods

new(jid=nil, iname=nil, subscription=nil, ask=nil)

Construct a new roster item

jid: | [JID] Jabber ID
iname: | [String] Name in the roster
subscription: | [Symbol] Type of subscription (see RosterItem#subscription=)
ask: | [Symbol] or [Nil] Can be :subscribe

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 95
     95:       def initialize(jid=nil, iname=nil, subscription=nil, ask=nil)
     96:         super()
     97:         self.jid = jid
     98:         self.iname = iname
     99:         self.subscription = subscription
    100:         self.ask = ask
    101:       end

### Public Instance methods

ask()

Get if asking for subscription

result: | [Symbol] nil or :subscribe

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 170
    170:       def ask
    171:         case attributes['ask']
    172:           when 'subscribe' then :subscribe
    173:           else nil
    174:         end
    175:       end

ask=(val)

Set if asking for subscription

val: | [Symbol] nil or :subscribe

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 180
    180:       def ask=(val)
    181:         case val
    182:           when :subscribe then attributes['ask'] = 'subscribe'
    183:           else attributes['ask'] = nil
    184:         end
    185:       end

groups()

Get groups the item belongs to

result: | [Array] of [String] The groups

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 190
    190:       def groups
    191:         result = []
    192:         each_element('group') { |group|
    193:           result.push(group.text)
    194:         }
    195:         result.uniq
    196:       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/iq/roster.rb, line 204
    204:       def groups=(ary)
    205:         # Delete old group elements
    206:         delete_elements('group')
    207:
    208:         # Add new group elements
    209:         ary.uniq.each { |group|
    210:           add_element('group').text = group
    211:         }
    212:       end

iname()

Get name of roster item

names can be set by the roster‘s owner himself

return: | [String]

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 108
    108:       def iname
    109:         attributes['name']
    110:       end

iname=(val)

Set name of roster item

val: | [String] Name for this item

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 115
    115:       def iname=(val)
    116:         attributes['name'] = val
    117:       end

jid()

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

return: | [JID]

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 123
    123:       def jid
    124:         (a = attributes['jid']) ? JID.new(a) : nil
    125:       end

jid=(val)

Set JID of roster item

val: | [JID] or nil

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 130
    130:       def jid=(val)
    131:         attributes['jid'] = val.nil? ? nil : val.to_s
    132:       end

subscription()

Get subscription type of roster item

result: | [Symbol] or [Nil] The following values are valid according to RFC3921:

- :both
- :from
- :none
- :remove
- :to

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 142
    142:       def subscription
    143:         case attributes['subscription']
    144:           when 'both' then :both
    145:           when 'from' then :from
    146:           when 'none' then :none
    147:           when 'remove' then :remove
    148:           when 'to' then :to
    149:           else nil
    150:         end
    151:       end

subscription=(val)

Set subscription type of roster item

val: | [Symbol] or [Nil] See subscription for possible Symbols

[Source]

         # File lib/xmpp4r/roster/iq/roster.rb, line 156
    156:       def subscription=(val)
    157:         case val
    158:           when :both then attributes['subscription'] = 'both'
    159:           when :from then attributes['subscription'] = 'from'
    160:           when :none then attributes['subscription'] = 'none'
    161:           when :remove then attributes['subscription'] = 'remove'
    162:           when :to then attributes['subscription'] = 'to'
    163:           else attributes['subscription'] = nil
    164:         end
    165:       end

[Validate]