Class Jabber::Discovery::IqQueryDiscoInfo
In: lib/xmpp4r/discovery/iq/discoinfo.rb
Parent: IqQuery

Class for handling Service Discovery queries, info (JEP 0030)

This <query/> may contain multiple Identity and Feature elements, describing the type and the supported namespaces of the service.

Methods

features   identity   new   node   node=   set_node   typed_add  

Public Class methods

Create a new query with namespace jabber.org/protocol/disco#info

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 21
21:       def initialize
22:         super
23:         add_namespace('http://jabber.org/protocol/disco#info')
24:       end

Public Instance methods

Get list of features

result:[Array] of [String]

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 82
82:       def features
83:         res = []
84:         each_element('feature') { |feature|
85:           res.push(feature.var)
86:         }
87:         res
88:       end

Get the first identity child

result:[Identity]

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 75
75:       def identity
76:         first_element('identity')
77:       end

Get the queried Service Discovery node or nil

See IqQueryDiscoItems#node for a small explanation of this.

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 52
52:       def node
53:         attributes['node']
54:       end

Get the queried Service Discovery node or nil

val:[String]

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 59
59:       def node=(val)
60:         attributes['node'] = val
61:       end

Get the queried Service Discovery node or nil (chaining-friendly)

val:[String]

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 67
67:       def set_node(val)
68:         self.node = val
69:         self
70:       end

Add a children element

Converts <identity/> elements to [Identity] and <feature/> elements to [Feature]

[Source]

    # File lib/xmpp4r/discovery/iq/discoinfo.rb, line 31
31:       def typed_add(element)
32:         if element.kind_of?(REXML::Element)
33: 
34:           if element.name == 'identity'
35:             super(Identity::new.import(element))
36:           elsif element.name == 'feature'
37:             super(Feature::new.import(element))
38:           else
39:             super(element)
40:           end
41: 
42:         else
43:           super(element)
44:         end
45:       end

[Validate]