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