| Class | Jabber::Roster::RosterItem |
| In: |
lib/xmpp4r/roster/iq/roster.rb
|
| Parent: | REXML::Element |
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.
Create new RosterItem from REXML::Element
| item: | [REXML::Element] source element to copy attributes and children from |
# File lib/xmpp4r/roster/iq/roster.rb, line 126
126: def RosterItem.import(item)
127: RosterItem::new.import(item)
128: end
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 115
115: def initialize(jid=nil, iname=nil, subscription=nil, ask=nil)
116: super('item')
117: self.jid = jid
118: self.iname = iname
119: self.subscription = subscription
120: self.ask = ask
121: end
Get if asking for subscription
| result: | [Symbol] nil or :subscribe |
# File lib/xmpp4r/roster/iq/roster.rb, line 197
197: def ask
198: case attributes['ask']
199: when 'subscribe' then :subscribe
200: else nil
201: end
202: end
Set if asking for subscription
| val: | [Symbol] nil or :subscribe |
# File lib/xmpp4r/roster/iq/roster.rb, line 207
207: def ask=(val)
208: case val
209: when :subscribe then attributes['ask'] = 'subscribe'
210: else attributes['ask'] = nil
211: end
212: 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 231
231: def groups=(ary)
232: # Delete old group elements
233: delete_elements('group')
234:
235: # Add new group elements
236: ary.uniq.each { |group|
237: add_element('group').text = group
238: }
239: 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 135
135: def iname
136: attributes['name']
137: end
Set name of roster item
| val: | [String] Name for this item |
# File lib/xmpp4r/roster/iq/roster.rb, line 142
142: def iname=(val)
143: attributes['name'] = val
144: 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 169
169: def subscription
170: case attributes['subscription']
171: when 'both' then :both
172: when 'from' then :from
173: when 'none' then :none
174: when 'remove' then :remove
175: when 'to' then :to
176: else nil
177: end
178: end
Set subscription type of roster item
| val: | [Symbol] or [Nil] See subscription for possible Symbols |
# File lib/xmpp4r/roster/iq/roster.rb, line 183
183: def subscription=(val)
184: case val
185: when :both then attributes['subscription'] = 'both'
186: when :from then attributes['subscription'] = 'from'
187: when :none then attributes['subscription'] = 'none'
188: when :remove then attributes['subscription'] = 'remove'
189: when :to then attributes['subscription'] = 'to'
190: else attributes['subscription'] = nil
191: end
192: end