Class: SubscribeQueryStanza
- Inherits:
-
IqQueryStanza
- Object
- IqQueryStanza
- SubscribeQueryStanza
- Defined in:
- lib/stanzas/subscribe_query_stanza.rb
Instance Method Summary collapse
- #add_node(node) ⇒ Object
-
#initialize(params) ⇒ SubscribeQueryStanza
constructor
A new instance of SubscribeQueryStanza.
- #nodes ⇒ Object
Methods inherited from IqQueryStanza
#from, #id, #random_iq_id, #to, #to_s, #type
Constructor Details
#initialize(params) ⇒ SubscribeQueryStanza
Returns a new instance of SubscribeQueryStanza.
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/stanzas/subscribe_query_stanza.rb', line 3 def initialize(params) raise NoFeedToSubscribe if params[:nodes].nil? or params[:nodes].empty? raise TooManyFeeds if params[:nodes].size > 30 super(params.merge({:type => :set})) @pubsub = Nokogiri::XML::Node.new("pubsub", @doc) @pubsub["xmlns"] = "http://jabber.org/protocol/pubsub" params[:nodes].each do |node| add_node(node) end @iq.add_child(@pubsub) end |
Instance Method Details
#add_node(node) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/stanzas/subscribe_query_stanza.rb', line 15 def add_node(node) subscribe = Nokogiri::XML::Node.new("subscribe", @doc) subscribe["node"] = node subscribe["jid"] = from.split("/").first @pubsub.add_child(subscribe) end |
#nodes ⇒ Object
22 23 24 |
# File 'lib/stanzas/subscribe_query_stanza.rb', line 22 def nodes @pubsub.children.map {|c| c["node"]} end |