Class Jabber::Vcard::Helper
In: lib/xmpp4r/vcard/helper/vcard.rb
Parent: Object

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/vcard/helper/vcard.rb, line 73
73:       def self.get(stream, jid=nil)
74:         new(stream).get(jid)
75:       end

Initialize a new Vcard helper

[Source]

    # File lib/xmpp4r/vcard/helper/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/vcard/helper/vcard.rb, line 80
80:       def self.set(stream, iqvcard)
81:         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/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]