Class: Jabber::Message
- Inherits:
-
Object
- Object
- Jabber::Message
- Defined in:
- lib/lijab/xmpp4r/message.rb,
lib/lijab/xmpp4r/message.rb
Constant Summary collapse
- CHAT_STATES =
%w(active composing gone inactive paused).freeze
Instance Method Summary collapse
- #chat_state ⇒ Object
-
#chat_state=(s) ⇒ Object
Sets the chat state :active, :composing, :gone, :inactive, :paused.
-
#each_elements(*els, &block) ⇒ Object
Returns the current chat state, or nil if no chat state is set.
-
#set_chat_state(s) ⇒ Object
Sets the message’s chat state.
Instance Method Details
#chat_state ⇒ Object
14 15 16 17 |
# File 'lib/lijab/xmpp4r/message.rb', line 14 def chat_state each_elements(*CHAT_STATES) { |el| return el.name.to_sym } return nil end |
#chat_state=(s) ⇒ Object
Sets the chat state :active, :composing, :gone, :inactive, :paused
21 22 23 24 25 26 27 |
# File 'lib/lijab/xmpp4r/message.rb', line 21 def chat_state=(s) s = s.to_s raise InvalidChatState, "Chat state must be one of #{CHAT_STATES.join(', ')}" unless CHAT_STATES.include?(s) CHAT_STATES.each { |state| delete_elements(state) } add_element(REXML::Element.new(s).add_namespace('http://jabber.org/protocol/chatstates')) end |
#each_elements(*els, &block) ⇒ Object
Returns the current chat state, or nil if no chat state is set
8 9 10 11 12 |
# File 'lib/lijab/xmpp4r/message.rb', line 8 def each_elements(*els, &block) els.inject([ ]) do |res, e| res + each_element(e, &block) end end |
#set_chat_state(s) ⇒ Object
Sets the message’s chat state
40 41 42 43 |
# File 'lib/lijab/xmpp4r/message.rb', line 40 def set_chat_state(s) self.chat_state = s self end |