Class Jabber::Helpers::Vcard
In: lib/xmpp4r/helpers/vcard.rb
Parent: Object
X XDelay XMuc XRoster XMucUser REXML::Element XRosterItem IqQuery XMLStanza IqVcard DiscoIdentity XMucUserItem DiscoItem Error RosterItem DiscoFeature IqQueryRoster IqQueryVersion IqQueryDiscoItems IqQueryDiscoInfo Message Presence Iq Singleton IdGenerator Connection Client Component Comparable JID RuntimeError ErrorException AuthenticationFailure RosterItem Stream StreamParser Roster Vcard Version lib/xmpp4r/authenticationfailure.rb lib/xmpp4r/iq/query/roster.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/iq/query/version.rb lib/xmpp4r/connection.rb lib/xmpp4r/x/mucuseritem.rb lib/xmpp4r/x/roster.rb lib/xmpp4r/iq.rb lib/xmpp4r/jid.rb lib/xmpp4r/iq/query.rb lib/xmpp4r/xmlstanza.rb lib/xmpp4r/x/delay.rb lib/xmpp4r/errorexception.rb lib/xmpp4r/client.rb lib/xmpp4r/stream.rb lib/xmpp4r/x/muc.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/x.rb lib/xmpp4r/iq/vcard.rb lib/xmpp4r/iq/query/discoinfo.rb lib/xmpp4r/error.rb lib/xmpp4r/component.rb lib/xmpp4r/message.rb lib/xmpp4r/iq/query/discoitems.rb lib/xmpp4r/presence.rb lib/xmpp4r/helpers/roster.rb lib/xmpp4r/helpers/vcard.rb lib/xmpp4r/helpers/version.rb Helpers Jabber Module: Jabber

The Vcard helper retrieves vCards

Methods

get   get   new   set   set  

Public Class methods

Quickly initialize a Vcard helper and get a vCard. See Vcard#get

[Source]

    # File lib/xmpp4r/helpers/vcard.rb, line 73
73:       def Vcard.get(stream, jid=nil)
74:         Vcard.new(stream).get(jid)
75:       end

Initialize a new Vcard helper

[Source]

    # File lib/xmpp4r/helpers/vcard.rb, line 15
15:       def initialize(stream)
16:         @stream = stream
17:       end

Quickly initialize a Vcard helper and set your vCard. See Vcard#set

[Source]

    # File lib/xmpp4r/helpers/vcard.rb, line 80
80:       def Vcard.set(stream, iqvcard)
81:         Vcard.new(stream).set(iqvcard)
82:       end

Public Instance methods

Retrieve vCard of an entity

Raises exception upon retrieval error, please catch that! (The exception is ErrorException and is raisen by Stream#send_with_id.

Usage of Threads is suggested here as vCards can be very big (see /iq/vCard/PHOTO/BINVAL).

jid:[Jabber::JID] or nil (should be stripped, nil for the client’s own vCard)
result:[Jabber::IqVcard] or nil (nil results may be handled as empty vCards)

[Source]

    # File lib/xmpp4r/helpers/vcard.rb, line 31
31:       def get(jid=nil)
32:         res = nil
33:         request = Iq.new(:get, jid)
34:         request.from = @stream.jid  # Enable components to use this
35:         request.add(IqVcard.new)
36:         @stream.send_with_id(request) { |answer|
37:           # No check for sender or queryns needed (see send_with_id)
38:           if answer.type == :result
39:             res = answer.vcard
40:             true
41:           else
42:             false
43:           end
44:         }
45:         res
46:       end

Set your own vCard (Clients only)

Raises exception when setting fails

Usage of Threads suggested here, too. The function waits for approval from the server.

iqvcard:[Jabber::IqVcard]

[Source]

    # File lib/xmpp4r/helpers/vcard.rb, line 57
57:       def set(iqvcard)
58:         iq = Iq.new(:set)
59:         iq.add(iqvcard)
60: 
61:         @stream.send_with_id(iq) { |answer|
62:           if answer.type == :result
63:             true
64:           else
65:             false
66:           end
67:         }
68:       end

[Validate]