Class: Jabber::Roster::IqQueryRoster

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

[](jid)

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

each() {|item| ...}

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

inspect()

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

receive_iq(iq, filter=true)

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

to_a()

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]