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.

Methods

[]   each   inspect   receive_iq   to_a  

Public Instance methods

Get roster item by JID

jid:[JID] or [Nil]
result:[RosterItem]

[Source]

    # 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]

[Source]

    # 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]

[Source]

    # 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

[Source]

    # 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]

[Source]

    # 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

[Validate]