Class Jabber::Vcard::Helper
In: lib/xmpp4r/vcard/helper/vcard.rb
Parent: Object
XMLStanza Message Presence Iq REXML::Element X IqQuery Error StreamHost IqSiFileRange IqSiFile StreamHostUsed IqSi XRosterItem RosterItem IqFeature XMUCUserItem XMUCUserInvite XDataField XDataReported XDataTitle XDataInstructions Feature Identity Item IqVcard Singleton IdGenerator Connection Client Component Comparable JID RuntimeError AuthenticationFailure ErrorException SOCKS5Error Stream SOCKS5Bytestreams SOCKS5BytestreamsTarget SOCKS5BytestreamsInitiator SOCKS5BytestreamsServerStreamHost TCPSocket SOCKS5Socket IBB IBBTarget IBBInitiator IqQuery IqQueryBytestreams IqQueryVersion IqQueryRoster IqQueryDiscoItems IqQueryDiscoInfo Responder SimpleResponder X XRoster XMUCUser XMUC XDelay XData MUCClient SimpleMUCClient Base DigestMD5 Plain FileSource StreamParser SOCKS5BytestreamsPeer SOCKS5BytestreamsServer IBBQueueItem Helper MUCBrowser Helper Helper lib/xmpp4r/authenticationfailure.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/connection.rb lib/xmpp4r/iq.rb lib/xmpp4r/jid.rb lib/xmpp4r/xmlstanza.rb lib/xmpp4r/errorexception.rb lib/xmpp4r/stream.rb lib/xmpp4r/client.rb lib/xmpp4r/x.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/error.rb lib/xmpp4r/component.rb lib/xmpp4r/query.rb lib/xmpp4r/message.rb lib/xmpp4r/presence.rb lib/xmpp4r/bytestreams/helper/ibb/initiator.rb lib/xmpp4r/bytestreams/iq/si.rb lib/xmpp4r/bytestreams/iq/bytestreams.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb lib/xmpp4r/bytestreams/helper/ibb/base.rb lib/xmpp4r/bytestreams/helper/ibb/target.rb Bytestreams lib/xmpp4r/version/iq/version.rb lib/xmpp4r/version/helper/responder.rb lib/xmpp4r/version/helper/simpleresponder.rb Version lib/xmpp4r/roster/helper/roster.rb lib/xmpp4r/roster/iq/roster.rb lib/xmpp4r/roster/x/roster.rb Roster lib/xmpp4r/feature_negotiation/iq/feature.rb FeatureNegotiation lib/xmpp4r/muc/x/muc.rb lib/xmpp4r/muc/helper/mucclient.rb lib/xmpp4r/muc/x/mucuseritem.rb lib/xmpp4r/muc/helper/mucbrowser.rb lib/xmpp4r/muc/x/mucuserinvite.rb lib/xmpp4r/muc/helper/simplemucclient.rb MUC lib/xmpp4r/sasl.rb SASL lib/xmpp4r/bytestreams/helper/filetransfer.rb TransferSource FileTransfer lib/xmpp4r/delay/x/delay.rb Delay lib/xmpp4r/dataforms/x/data.rb Dataforms lib/xmpp4r/discovery/iq/discoinfo.rb lib/xmpp4r/discovery/iq/discoitems.rb Discovery lib/xmpp4r/vcard/helper/vcard.rb lib/xmpp4r/vcard/iq/vcard.rb Vcard Jabber dot/m_60_0.png

The Vcard helper retrieves vCards

Methods

get   new   set  

Public Class methods

Initialize a new Vcard helper

[Source]

    # File lib/xmpp4r/vcard/helper/vcard.rb, line 15
15:       def initialize(stream)
16:         @stream = stream
17:       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/vcard/helper/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/vcard/helper/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]