class Vines::Stanza::PubSub::Create
Constants
- NS
Public Instance Methods
process()
click to toggle source
# File lib/vines/stanza/pubsub/create.rb, line 11 def process return if route_iq || !allowed? validate_to_address node = self.xpath('ns:pubsub/ns:create', 'ns' => NS) raise StanzaErrors::BadRequest.new(self, 'modify') if node.size != 1 node = node.first id = (node['node'] || '').strip id = Kit.uuid if id.empty? raise StanzaErrors::Conflict.new(self, 'cancel') if pubsub.node?(id) pubsub.add_node(id) send_result_iq(id) end
Private Instance Methods
send_result_iq(id)
click to toggle source
# File lib/vines/stanza/pubsub/create.rb, line 28 def send_result_iq(id) el = to_result el << el.document.create_element('pubsub') do |node| node.default_namespace = NS node << el.document.create_element('create', 'node' => id) end stream.write(el) end