Class Jabber::PubSub::NodeBrowser
In: lib/xmpp4r/pubsub/helper/nodebrowser.rb
Parent: Object

Methods

category   get_info   items   new   nodes   nodes_names   type  

External Aliases

get_info -> get_metadata
  this is only for a xep <-> nodebrowser.rb understanding

Public Class methods

Initialize a new NodeBrowser new(stream,pubsubservice)

stream:[Jabber::Stream]

[Source]

    # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 14
14:       def initialize(stream)
15:         @stream = stream
16:       end

Public Instance methods

get category of node

jid:[Jabber::JID]
node:[String]

[Source]

     # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 167
167:       def category(jid,node)
168:         info = get_info(jid,node)
169:         return info['category']
170:       end

[Source]

     # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 116
116:       def get_info(jid,node)
117:         iq = Iq.new(:get,jid)
118:         iq.from = @stream.jid
119:         discoinfo = Discovery::IqQueryDiscoInfo.new
120:         discoinfo.node = node
121:         iq.add(discoinfo)
122:         info = {}
123:         @stream.send_with_id(iq) { |answer|
124:           if answer.type == :result
125:             
126:             identity = answer.query.identity
127:             info['type'] = identity.type
128:             info['category'] = identity.category
129:             
130:             info['features'] = answer.query.features
131:             
132: # i think its not needed - if you think so then delete it           
133: #           answer.query.each_element('identity') { |identity|
134: #             info['type'] = identity.type
135: #             info['category'] = identity.category
136: #           }
137: #           
138: #           features = []
139: #           answer.query.each_element('feature') { |feature|
140: #            features.push(feature)
141: #           }
142: #           info['features'] = features
143: #           
144:             answer.query.each_element('x') { |x|
145:               info['nodeinformation'] = x 
146:             }
147:           end
148:         }
149:         return info
150:       end

Retrive the items from a node Throws an ErrorExeption when reciving <iq type=‘error’/>

jid:[Jabber::JID] Target entity (set only domain!)
node:[String]
return:[Array] of [Hash] with keys ‘name’ => [String] and ‘jid’ => [Jabber::JID]

[Source]

     # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 82
 82:       def items(jid,node)
 83:         iq = Iq.new(:get,jid)
 84:         iq.from = @stream.jid
 85:         discoitems = Discovery::IqQueryDiscoItems.new
 86:         discoitems.node = node
 87:         iq.add(discoitems)
 88:         items = []
 89:         err = nil
 90:         @stream.send_with_id(iq) { |answer|
 91:           if answer.type == :result
 92:             answer.query.each_element('item') { |item|
 93:               items.push( {'jid' => item.jid,'name' => item.iname } )
 94:             }
 95:             true
 96:           elsif answer.type == :error
 97:             err = answer.error
 98:             true
 99:           else
100:             false
101:           end
102:         }
103:         return items
104:       end

Retrive the nodes Throws an ErrorException when receiving <iq type=‘error’/>

jid:[JID] Target entity (set only domain!)
return:[Array] of [String] or [nil]

[Source]

    # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 24
24:       def nodes(jid)
25:         iq = Iq.new(:get,jid)
26:         iq.from = @stream.jid
27:         iq.add(Discovery::IqQueryDiscoItems.new)
28:         nodes = []
29:         err = nil
30:         @stream.send_with_id(iq) { |answer|
31:           if answer.type == :result
32:             answer.query.each_element('item') { |item|
33:               nodes.push(item.node)
34:             }
35:             true
36:           elsif answer.type == :error
37:             err = answer.error
38:             true
39:           else
40:             false
41:           end
42:         }
43:         return nodes
44:       end

Retrive the nodes with names Throws an ErrorExeption when reciving <iq type=‘error’/>

jid:[Jabber::JID] Target entity (set only domain!)
return:[Array] of [Hash] with keys ‘node’ => [String] and ‘name’ => [String] or [nil]

[Source]

    # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 52
52:       def nodes_names(jid)
53:         iq = Iq.new(:get,jid)
54:         iq.from = @stream.jid
55:         iq.add(Discovery::IqQueryDiscoItems.new)
56:         nodes = []
57:         err = nil
58:         @stream.send_with_id(iq) { |answer|
59:           if answer.type == :result
60:             answer.query.each_element('item') { |item|
61:               nodes.push( {'node' => item.node,'name' => item.iname } )
62:             }
63:             true
64:           elsif answer.type == :error
65:             err = answer.error
66:             true
67:           else
68:             false
69:           end
70:         }
71:         return nodes
72:       end

get type of node

jid:[Jabber::JID]
node:[String]

[Source]

     # File lib/xmpp4r/pubsub/helper/nodebrowser.rb, line 157
157:       def type(jid,node)
158:         info = get_info(jid,node)
159:         return info['type']
160:       end

[Validate]