class Jabber::Vcard::Helper
The Vcard helper retrieves vCards
Public Class Methods
get(stream, jid=nil)
click to toggle source
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
new(stream)
click to toggle source
Initialize a new Vcard helper
# File lib/xmpp4r/vcard/helper/vcard.rb, line 14 def initialize(stream) @stream = stream end
set(stream, iqvcard)
click to toggle source
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
Public Instance Methods
get(jid=nil)
click to toggle source
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
).
- 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)
# 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(iqvcard)
click to toggle source
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
# 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