Class | Jabber::Message |
In: |
lib/xmpp4r/message.rb
|
Parent: | XMLStanza |
The Message class manages the <message/> stanzas, which is used for all messaging communication.
Create a new message from a stanza, by copying all attributes and children from it.
xmlstanza: | [REXML::Element] Source |
return: | [Message] Result |
# File lib/xmpp4r/message.rb, line 102 102: def Message.import(xmlstanza) 103: Message::new.import(xmlstanza) 104: end
Create a new message
>to: | a JID or a String object to send the message to. |
>body: | the message’s body |
# File lib/xmpp4r/message.rb, line 18 18: def initialize(to = nil, body = nil) 19: super("message") 20: if not to.nil? 21: set_to(to) 22: end 23: if !body.nil? 24: add_element(REXML::Element::new("body").add_text(body)) 25: end 26: end
Returns the message’s body, or nil. This is the message’s plain-text content.
# File lib/xmpp4r/message.rb, line 93 93: def body 94: first_element_text('body') 95: end
Sets the message’s body
b: | [String] body to set |
# File lib/xmpp4r/message.rb, line 110 110: def body=(b) 111: replace_element_text('body', b) 112: end
Sets the message’s body
b: | [String] body to set |
return: | [REXML::Element] self for chaining |
# File lib/xmpp4r/message.rb, line 119 119: def set_body(b) 120: self.body = b 121: self 122: end
sets the message’s subject
s: | [String] subject to set |
return: | [REXML::Element] self for chaining |
# File lib/xmpp4r/message.rb, line 137 137: def set_subject(s) 138: self.subject = s 139: self 140: end
gets the message’s thread (chaining-friendly) Please note that this are not [Thread] but a [String]-Identifier to track conversations
s: | [String] thread to set |
# File lib/xmpp4r/message.rb, line 160 160: def set_thread(s) 161: self.thread = s 162: self 163: end
Returns the message’s subject, or nil
# File lib/xmpp4r/message.rb, line 144 144: def subject 145: first_element_text('subject') 146: end
sets the message’s subject
s: | [String] subject to set |
# File lib/xmpp4r/message.rb, line 128 128: def subject=(s) 129: replace_element_text('subject', s) 130: end
Returns the message’s thread, or nil
# File lib/xmpp4r/message.rb, line 167 167: def thread 168: first_element_text('thread') 169: end
sets the message’s thread
s: | [String] thread to set |
# File lib/xmpp4r/message.rb, line 151 151: def thread=(s) 152: delete_elements('thread') 153: replace_element_text('thread', s) unless s.nil? 154: end
Get the type of the Message stanza
The following Symbols are allowed:
result: | [Symbol] or nil |
# File lib/xmpp4r/message.rb, line 51 51: def type 52: case super 53: when 'chat' then :chat 54: when 'error' then :error 55: when 'groupchat' then :groupchat 56: when 'headline' then :headline 57: when 'normal' then :normal 58: else nil 59: end 60: end
Set the type of the Message stanza (see Message#type for details)
v: | [Symbol] or nil |
# File lib/xmpp4r/message.rb, line 65 65: def type=(v) 66: case v 67: when :chat then super('chat') 68: when :error then super('error') 69: when :groupchat then super('groupchat') 70: when :headline then super('headline') 71: when :normal then super('normal') 72: else super(nil) 73: end 74: end
Add a sub-element
Will be converted to [X] if named "x"
element: | [REXML::Element] to add |
# File lib/xmpp4r/message.rb, line 33 33: def typed_add(element) 34: if element.kind_of?(REXML::Element) && (element.name == 'x') 35: super(X::import(element)) 36: else 37: super(element) 38: end 39: end