Class: Jabber::Vcard::Helper

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

get(stream, jid=nil)

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

[Source]

        # File lib/xmpp4r/vcard/helper/vcard.rb, line 72
    72:       def self.get(stream, jid=nil)
    73:         new(stream).get(jid)
    74:       end

new(stream)

Initialize a new Vcard helper

[Source]

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

set(stream, iqvcard)

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

[Source]

        # File lib/xmpp4r/vcard/helper/vcard.rb, line 79
    79:       def self.set(stream, iqvcard)
    80:         new(stream).set(iqvcard)
    81:       end

### Public Instance methods

get(jid=nil)

Retrieve vCard of an entity

Raises exception upon retrieval error, please catch that! (The exception is ServerError 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 30
    30:       def get(jid=nil)
    31:         res = nil
    32:         request = Iq.new(:get, jid)
    33:         request.from = @stream.jid  # Enable components to use this
    34:         request.add(IqVcard.new)
    35:         @stream.send_with_id(request) { |answer|
    36:           # No check for sender or queryns needed (see send_with_id)
    37:           if answer.type == :result
    38:             res = answer.vcard
    39:             true
    40:           else
    41:             false
    42:           end
    43:         }
    44:         res
    45:       end

set(iqvcard)

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 56
    56:       def set(iqvcard)
    57:         iq = Iq.new(:set)
    58:         iq.add(iqvcard)
    59:
    60:         @stream.send_with_id(iq) { |answer|
    61:           if answer.type == :result
    62:             true
    63:           else
    64:             false
    65:           end
    66:         }
    67:       end

[Validate]