Class: Blather::Stanza::PubSub::Create

Inherits:
Blather::Stanza::PubSub show all
Defined in:
lib/blather/stanza/pubsub/create.rb

Overview

# PubSub Create Stanza

[XEP-0060 Section 8.1 - Create a Node](xmpp.org/extensions/xep-0060.html#owner-create)

Constant Summary

Constants inherited from Iq

Iq::VALID_TYPES

Constants inherited from XMPPNode

XMPPNode::BASE_NAMES

Instance Attribute Summary

Attributes inherited from Blather::Stanza

#handler_hierarchy

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Blather::Stanza::PubSub

import, #inherit, #pubsub

Methods inherited from Iq

#error?, #get?, import, #reply!, #result?, #set?, #type=

Methods inherited from Blather::Stanza

#as_error, #error?, #from, #from=, handler_list, #id, #id=, #initialize, next_id, register, #reply, #reply!, #to, #to=, #type, #type=

Methods inherited from XMPPNode

class_from_registration, #decorate, decorator_modules, import, parse, register, #to_stanza

Constructor Details

This class inherits a constructor from Blather::Stanza

Class Method Details

.new(type = :set, host = nil, node = nil) ⇒ Object

Create a new Create Stanza

Parameters:

  • type (<Blather::Stanza::Iq::VALID_TYPES>) (defaults to: :set)

    the node type

  • host (String, nil) (defaults to: nil)

    the host to send the request to

  • node (String, nil) (defaults to: nil)

    the name of the node to create



18
19
20
21
22
23
24
# File 'lib/blather/stanza/pubsub/create.rb', line 18

def self.new(type = :set, host = nil, node = nil)
  new_node = super(type, host)
  new_node.create_node
  new_node.configure_node
  new_node.node = node
  new_node
end

Instance Method Details

#configure_nodeBlather::XMPPNode

Get or create the actual configure node on the stanza

Returns:



54
55
56
57
58
59
60
# File 'lib/blather/stanza/pubsub/create.rb', line 54

def configure_node
  unless configure_node = pubsub.find_first('ns:configure', :ns => self.class.registered_ns)
    self.pubsub << (configure_node = XMPPNode.new('configure', self.document))
    configure_node.namespace = self.pubsub.namespace
  end
  configure_node
end

#create_nodeBlather::XMPPNode

Get or create the actual create node on the stanza

Returns:



43
44
45
46
47
48
49
# File 'lib/blather/stanza/pubsub/create.rb', line 43

def create_node
  unless create_node = pubsub.find_first('ns:create', :ns => self.class.registered_ns)
    self.pubsub << (create_node = XMPPNode.new('create', self.document))
    create_node.namespace = self.pubsub.namespace
  end
  create_node
end

#nodeString?

Get the name of the node to create

Returns:

  • (String, nil)


29
30
31
# File 'lib/blather/stanza/pubsub/create.rb', line 29

def node
  create_node[:node]
end

#node=(node) ⇒ Object

Set the name of the node to create

Parameters:

  • node (String, nil)


36
37
38
# File 'lib/blather/stanza/pubsub/create.rb', line 36

def node=(node)
  create_node[:node] = node
end