class Blather::Stanza::Presence::Status
[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.message # => nil status.message = "gone!" status.message # => "gone!"
@handler :status
Constants
- POSSIBLE_STATES
…but this is the sorted list of possible states
- VALID_STATES
@private The spec requires only the following 4 states
- VALID_TYPES
Public Class Methods
Create a new Status
stanza
@param [<:away, :chat, :dnd, :xa>] state the state of the status @param [#to_s] message a message to send with the status
Blather::Stanza::Presence::new
# File lib/blather/stanza/presence/status.rb, line 94 def self.new(state = nil, message = nil) node = super() node.state = state node.message = message node end