| 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.
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 |
# 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
Get if asking for subscription
| result: | [Symbol] nil or :subscribe |
# 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
Set if asking for subscription
| val: | [Symbol] nil or :subscribe |
# 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
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/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
Get name of roster item
names can be set by the roster‘s owner himself
| return: | [String] |
# File lib/xmpp4r/roster/iq/roster.rb, line 108
108: def iname
109: attributes['name']
110: end
Set name of roster item
| val: | [String] Name for this item |
# File lib/xmpp4r/roster/iq/roster.rb, line 115
115: def iname=(val)
116: attributes['name'] = val
117: end
Get subscription type of roster item
| result: | [Symbol] or [Nil] The following values are valid according to RFC3921: |
# 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
Set subscription type of roster item
| val: | [Symbol] or [Nil] See subscription for possible Symbols |
# 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