class Blather::Stanza::Presence::Status

# 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:

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

new(state = nil, message = nil) click to toggle source

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

Calls superclass method 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