class Blather::Stanza::Iq::Vcard::Vcard
Vcard
stanza fragment
Constants
- VCARD_NS
@private
Public Class Methods
find_or_create(parent)
click to toggle source
Find or create vCard node in Vcard
Iq
and converts it to Vcard::Vcard
@param [Vcard] parent a Vcard
Iq
where to find or create vCard
@return [Vcard::Vcard]
# File lib/blather/stanza/iq/vcard.rb, line 95 def self.find_or_create(parent) if found_vcard = parent.find_first('//ns:vCard', :ns => VCARD_NS) vcard = self.new found_vcard found_vcard.remove else vcard = self.new end parent << vcard vcard end
new(node = nil)
click to toggle source
Create a new Vcard::Vcard
object
@param [XML::Node, nil] node a node to inherit from
@return [Vcard::Vcard]
Calls superclass method
# File lib/blather/stanza/iq/vcard.rb, line 83 def self.new(node = nil) new_node = super :vCard new_node.namespace = VCARD_NS new_node.inherit node if node new_node end
Public Instance Methods
[](name)
click to toggle source
Find the element's value by name
@param [String] name the name of the element
@return [String, nil]
# File lib/blather/stanza/iq/vcard.rb, line 112 def [](name) name = name.split("/").map{|child| "ns:#{child}"}.join("/") if elem = find_first(name, :ns => VCARD_NS) elem.content else nil end end
[]=(name, value)
click to toggle source
Set the element's value
@param [String] name the name of the element @param [String, nil] value the new value of element
@return [String, nil]
# File lib/blather/stanza/iq/vcard.rb, line 128 def []=(name, value) elem = nil parent = self name.split("/").each do |child| elem = parent.find_first("ns:#{child}", :ns => VCARD_NS) unless elem elem = XMPPNode.new(child, parent.document) parent << elem parent = elem else parent = elem end end elem.content = value end