| Class | Jabber::Roster::IqQueryRoster |
| In: |
lib/xmpp4r/roster/iq/roster.rb
|
| Parent: | IqQuery |
Class for handling roster updates
You must do ‘client.send(Iq.new_rosterget)’ or else you will have nothing to put in receive_iq()
You must require ‘xmpp4r/rosterquery’ to use this class as its functionality is not needed for a working XMPP implementation. This will make [IqQuery] convert all Queries with namespace ‘jabber:iq:roster’ to [IqQueryRoster]
This <query/> contains multiple <item/> children. See RosterItem.
Get roster item by JID
| jid: | [JID] or [Nil] |
| result: | [RosterItem] |
# File lib/xmpp4r/roster/iq/roster.rb, line 38
38: def [](jid)
39: each { |item|
40: return(item) if item.jid == jid
41: }
42: nil
43: end
Iterate through all items
| &block: | Yield for every [RosterItem] |
# File lib/xmpp4r/roster/iq/roster.rb, line 27
27: def each(&block)
28: each_element { |item|
29: # XPath won't work here as it's missing a prefix...
30: yield(item) if item.kind_of?(RosterItem)
31: }
32: end
Output for "p"
JIDs of all contained [RosterItem] elements are joined with a comma
| result: | [String] |
# File lib/xmpp4r/roster/iq/roster.rb, line 74
74: def inspect
75: jids = to_a.collect { |item| item.jid.inspect }
76: jids.join(', ')
77: end
Update roster by <iq/> stanza (to be fed by an iq_callback)
| iq: | [Iq] Containing new roster |
| filter: | [Boolean] If false import non-roster-like results too |
# File lib/xmpp4r/roster/iq/roster.rb, line 61
61: def receive_iq(iq, filter=true)
62: if filter && (((iq.type != :set) && (iq.type != :result)) || (iq.queryns != 'jabber:iq:roster'))
63: return
64: end
65:
66: import(iq.query)
67: end
Get all items
| result: | [Array] of [RosterItem] |
# File lib/xmpp4r/roster/iq/roster.rb, line 48
48: def to_a
49: a = []
50: each { |item|
51: a.push(item)
52: }
53: a
54: end