Class: Vines::Stanza::PubSub::Publish
- Inherits:
-
Vines::Stanza::PubSub
- Object
- Vines::Stanza
- Iq
- Vines::Stanza::PubSub
- Vines::Stanza::PubSub::Publish
- Defined in:
- lib/vines/stanza/pubsub/publish.rb
Constant Summary collapse
- NS =
NAMESPACES[:pubsub]
Constants inherited from Iq
Constants inherited from Vines::Stanza
Instance Attribute Summary
Attributes inherited from Vines::Stanza
Instance Method Summary collapse
Methods inherited from Iq
Methods inherited from Vines::Stanza
#broadcast, from_node, #initialize, #local?, #local_jid?, #method_missing, register, #route, #router, #send_unavailable, #storage, #to_pubsub_domain?, #unavailable, #validate_from, #validate_to
Constructor Details
This class inherits a constructor from Vines::Stanza
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Vines::Stanza
Instance Method Details
#process ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/vines/stanza/pubsub/publish.rb', line 11 def process return if route_iq || !allowed? validate_to_address node = self.xpath('ns:pubsub/ns:publish', 'ns' => NS) raise StanzaErrors::BadRequest.new(self, 'modify') if node.size != 1 node = node.first id = node['node'] raise StanzaErrors::ItemNotFound.new(self, 'cancel') unless pubsub.node?(id) item = node.xpath('ns:item', 'ns' => NS) raise StanzaErrors::BadRequest.new(self, 'modify') unless item.size == 1 item = item.first unless item['id'] item['id'] = Kit.uuid include_item = true end raise StanzaErrors::BadRequest.new(self, 'modify') unless item.elements.size == 1 pubsub.publish(id, (id, item)) send_result_iq(id, include_item ? item : nil) end |