Class: Blather::Stanza::PubSub::Unsubscribe

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

Overview

# PubSub Unsubscribe Stanza

[XEP-0060 Section 6.2 - Unsubscribe from a Node](xmpp.org/extensions/xep-0060.html#subscriber-unsubscribe)

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, jid = nil, subid = nil) ⇒ Object

Create a new unsubscribe node

Parameters:

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

    the IQ stanza type

  • host (String) (defaults to: nil)

    the host to send the request to

  • node (String) (defaults to: nil)

    the node to unsubscribe from

  • jid (Blather::JID, #to_s) (defaults to: nil)

    the JID of the unsubscription

  • subid (String) (defaults to: nil)

    the subscription ID of the unsubscription



20
21
22
23
24
25
26
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 20

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

Instance Method Details

#jidBlather::JID

Get the JID of the unsubscription

Returns:



31
32
33
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 31

def jid
  JID.new(unsubscribe[:jid])
end

#jid=(jid) ⇒ Object

Set the JID of the unsubscription

Parameters:



38
39
40
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 38

def jid=(jid)
  unsubscribe[:jid] = jid
end

#nodeString

Get the name of the node to unsubscribe from

Returns:

  • (String)


45
46
47
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 45

def node
  unsubscribe[:node]
end

#node=(node) ⇒ Object

Set the name of the node to unsubscribe from

Parameters:

  • node (String)


52
53
54
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 52

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

#subidString

Get the subscription ID to unsubscribe from

Returns:

  • (String)


59
60
61
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 59

def subid
  unsubscribe[:subid]
end

#subid=(subid) ⇒ Object

Set the subscription ID to unsubscribe from

Parameters:

  • node (String)


66
67
68
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 66

def subid=(subid)
  unsubscribe[:subid] = subid
end

#unsubscribeBlather::XMPPNode

Get or create the actual unsubscribe node

Returns:



73
74
75
76
77
78
79
# File 'lib/blather/stanza/pubsub/unsubscribe.rb', line 73

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