The Vcard helper retrieves vCards
Quickly initialize a Vcard helper and get a vCard. See Vcard#get
# File lib/xmpp4r/vcard/helper/vcard.rb, line 72 def self.get(stream, jid=nil) new(stream).get(jid) end
Initialize a new Vcard helper
# File lib/xmpp4r/vcard/helper/vcard.rb, line 14 def initialize(stream) @stream = stream end
Quickly initialize a Vcard helper and set your vCard. See Vcard#set
# File lib/xmpp4r/vcard/helper/vcard.rb, line 79 def self.set(stream, iqvcard) new(stream).set(iqvcard) end
Retrieve vCard of an entity
Raises exception upon retrieval error, please catch that! (The exception is ServerError and is raisen by Jabber::Stream#send_with_id.
Usage of Threads is suggested here as vCards can be very big (see
/iq/vCard/PHOTO/BINVAL
).
or nil (should be stripped, nil for the client's own vCard)
or nil (nil results may be handled as empty vCards)
# File lib/xmpp4r/vcard/helper/vcard.rb, line 30 def get(jid=nil) res = nil request = Iq.new(:get, jid) request.from = @stream.jid # Enable components to use this request.add(IqVcard.new) @stream.send_with_id(request) { |answer| # No check for sender or queryns needed (see send_with_id) if answer.type == :result res = answer.vcard true else false end } res 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.
# File lib/xmpp4r/vcard/helper/vcard.rb, line 56 def set(iqvcard) iq = Iq.new(:set) iq.add(iqvcard) @stream.send_with_id(iq) { |answer| if answer.type == :result true else false end } end