Class: Blather::Stanza::Presence::Status
- Inherits:
-
Blather::Stanza::Presence
- Object
- Niceogiri::XML::Node
- XMPPNode
- Blather::Stanza
- Blather::Stanza::Presence
- Blather::Stanza::Presence::Status
- Includes:
- InstanceMethods, Comparable
- Defined in:
- lib/blather/stanza/presence/status.rb
Overview
# Status Stanza
[RFC 3921 Section 2.2.2 - Presence Child Elements](xmpp.org/rfcs/rfc3921.html#rfc.section.2.2.2)
Presence stanzas are used to express an entity’s current network availability (offline or online, along with various sub-states of the latter and optional user-defined descriptive text), and to notify other entities of that availability.
## “State” Attribute
The ‘state` attribute determains the availability of the entity and can be one of the following:
-
‘:available` – The entity or resource is available
-
‘:away` – The entity or resource is temporarily away.
-
‘:chat` – The entity or resource is actively interested in chatting.
-
‘:dnd` – The entity or resource is busy (dnd = “Do Not Disturb”).
-
‘:xa` – The entity or resource is away for an extended period (xa = “eXtended Away”).
Blather provides a helper for each possible state:
Status#available?
Status#away?
Status#chat?
Status#dnd?
Status#xa?
Blather treats the ‘type` attribute like a normal ruby object attribute providing a getter and setter. The default `type` is `available`.
status = Status.new
status.state # => :available
status.available? # => true
status.state = :away
status.away? # => true
status.available? # => false
status
status.state = :invalid # => RuntimeError
## “Type” Attribute
The ‘type` attribute is inherited from Presence, but limits the value to either `nil` or `:unavailable` as these are the only types that relate to Status.
## “Priority” Attribute
The ‘priority` attribute sets the priority of the status for the entity and must be an integer between -128 and 127.
## “Message” Attribute
The optional ‘message` element contains XML character data specifying a natural-language description of availability status. It is normally used in conjunction with the show element to provide a detailed description of an availability state (e.g., “In a meeting”).
Blather treats the ‘message` attribute like a normal ruby object attribute providing a getter and setter. The default `message` is nil.
status = Status.new
status. # => nil
status. = "gone!"
status. # => "gone!"
Direct Known Subclasses
Defined Under Namespace
Modules: InstanceMethods
Constant Summary collapse
- VALID_STATES =
[:away, :chat, :dnd, :xa].freeze
- VALID_TYPES =
[:unavailable].freeze
Constants inherited from XMPPNode
Instance Attribute Summary
Attributes inherited from Blather::Stanza
Class Method Summary collapse
-
.new(state = nil, message = nil) ⇒ Object
Create a new Status stanza.
Methods included from InstanceMethods
#<=>, #available?, #away?, #chat?, #dnd?, #message, #message=, #priority, #priority=, #state, #state=, #xa?
Methods inherited from Blather::Stanza::Presence
#error?, import, #probe?, #subscribe?, #subscribed?, #type=, #unavailable?, #unsubscribe?, #unsubscribed?
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(state = nil, message = nil) ⇒ Object
Create a new Status stanza
90 91 92 93 94 95 |
# File 'lib/blather/stanza/presence/status.rb', line 90 def self.new(state = nil, = nil) node = super() node.state = state node. = node end |