Class Jabber::IqVcard
In: lib/xmpp4r/iq/vcard.rb
Parent: REXML::Element
X XDelay XMuc XRoster XMucUser REXML::Element XRosterItem IqQuery XMLStanza IqVcard DiscoIdentity XMucUserItem DiscoItem Error RosterItem DiscoFeature IqQueryRoster IqQueryVersion IqQueryDiscoItems IqQueryDiscoInfo Message Presence Iq Singleton IdGenerator Connection Client Component Comparable JID RuntimeError ErrorException AuthenticationFailure RosterItem Stream StreamParser Roster Vcard Version lib/xmpp4r/authenticationfailure.rb lib/xmpp4r/iq/query/roster.rb lib/xmpp4r/idgenerator.rb lib/xmpp4r/iq/query/version.rb lib/xmpp4r/connection.rb lib/xmpp4r/x/mucuseritem.rb lib/xmpp4r/x/roster.rb lib/xmpp4r/iq.rb lib/xmpp4r/jid.rb lib/xmpp4r/iq/query.rb lib/xmpp4r/xmlstanza.rb lib/xmpp4r/x/delay.rb lib/xmpp4r/errorexception.rb lib/xmpp4r/client.rb lib/xmpp4r/stream.rb lib/xmpp4r/x/muc.rb lib/xmpp4r/streamparser.rb lib/xmpp4r/x.rb lib/xmpp4r/iq/vcard.rb lib/xmpp4r/iq/query/discoinfo.rb lib/xmpp4r/error.rb lib/xmpp4r/component.rb lib/xmpp4r/message.rb lib/xmpp4r/iq/query/discoitems.rb lib/xmpp4r/presence.rb lib/xmpp4r/helpers/roster.rb lib/xmpp4r/helpers/vcard.rb lib/xmpp4r/helpers/version.rb Helpers Jabber Module: Jabber

vCard container for User Information (can be specified by users themselves, mostly kept on servers) (JEP 0054)

Methods

[]   []=   fields   import   new  

Public Class methods

element:[REXML::Element] to import
result:[IqVcard] with all attributes and children copied from element

[Source]

    # File lib/xmpp4r/iq/vcard.rb, line 30
30:     def IqVcard.import(element)
31:       IqVcard::new.import(element)
32:     end

Initialize a <vCard/> element

fields:[Hash] Initialize with keys as XPath element names and values for element texts

[Source]

    # File lib/xmpp4r/iq/vcard.rb, line 16
16:     def initialize(fields=nil)
17:       super("vCard")
18:       add_namespace('vcard-temp')
19: 
20:       unless fields.nil?
21:         fields.each { |name,value|
22:           self[name] = value
23:         }
24:       end
25:     end

Public Instance methods

Get an elements/fields text

vCards have too much possible children, so ask for them here and extract the result with iqvcard.element(’…’).text

name:[String] XPath

[Source]

    # File lib/xmpp4r/iq/vcard.rb, line 40
40:     def [](name)
41:       text = nil
42:       each_element(name) { |child| text = child.text }
43:       text
44:     end

Set an elements/fields text

name:[String] XPath
text:[String] Value

[Source]

    # File lib/xmpp4r/iq/vcard.rb, line 50
50:     def []=(name, text)
51:       xe = self
52:       name.split(/\//).each do |elementname|
53:         # Does the children already exist?
54:         newxe = nil
55:         xe.each_element(elementname) { |child| newxe = child }
56: 
57:         if newxe.nil?
58:           # Create a new
59:           xe = xe.add_element(elementname)
60:         else
61:           # Or take existing
62:           xe = newxe
63:         end
64:       end
65:       xe.text = text
66:     end

Get vCard field names

Example:

 ["NICKNAME", "BDAY", "ORG/ORGUNIT", "PHOTO/TYPE", "PHOTO/BINVAL"]
result:[Array] of [String]

[Source]

    # File lib/xmpp4r/iq/vcard.rb, line 75
75:     def fields
76:       element_names(self).uniq
77:     end

[Validate]