Class: Jabber::Delay::XDelay
- Inherits:
-
X
- Object
- REXML::Element
- X
- Jabber::Delay::XDelay
- Defined in:
- lib/xmpp4r/delay/x/delay.rb
Overview
Implementation of JEP 0091 for <x xmlns=‘jabber:x:delay’ stamp=‘…’ …/> applied on <message/> and <presence/> stanzas
One may also use XDelay#text for a descriptive reason for the delay.
Please note that you must require ‘xmpp4r/xdelay’ to use this class as it’s not required by a basic XMPP implementation. <x/> elements with the specific namespace will then be converted to XDelay automatically.
Instance Method Summary collapse
-
#from ⇒ Object
- Get the timestamp’s origin result
-
[JID].
-
#from=(jid) ⇒ Object
- Set the timestamp’s origin jid
-
[JID].
-
#initialize(insertnow = true) ⇒ XDelay
constructor
Initialize a new XDelay element.
-
#set_from(jid) ⇒ Object
Set the timestamp’s origin (chaining-friendly).
-
#set_stamp(t) ⇒ Object
Set the timestamp (chaining-friendly).
-
#stamp ⇒ Object
- Get the timestamp result
- Time
-
or nil.
-
#stamp=(t) ⇒ Object
- Set the timestamp t
- Time
-
or nil.
Methods inherited from X
Methods inherited from REXML::Element
#delete_elements, #first_element, #first_element_text, #import, import, #replace_element_text, #typed_add
Constructor Details
#initialize(insertnow = true) ⇒ XDelay
Initialize a new XDelay element
- insertnow
- Boolean
-
Set the stamp to [Time::now]
28 29 30 31 32 33 34 35 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 28 def initialize(insertnow=true) super() add_namespace('jabber:x:delay') if insertnow set_stamp(Time.now) end end |
Instance Method Details
#from ⇒ Object
Get the timestamp’s origin
- result
- JID
75 76 77 78 79 80 81 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 75 def from if attributes['from'] JID::new(attributes['from']) else nil end end |
#from=(jid) ⇒ Object
Set the timestamp’s origin
- jid
- JID
86 87 88 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 86 def from=(jid) attributes['from'] = jid.nil? ? nil : jid.to_s end |
#set_from(jid) ⇒ Object
Set the timestamp’s origin (chaining-friendly)
92 93 94 95 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 92 def set_from(jid) self.from = jid self end |
#set_stamp(t) ⇒ Object
Set the timestamp (chaining-friendly)
67 68 69 70 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 67 def set_stamp(t) self.stamp = t self end |
#stamp ⇒ Object
Get the timestamp
- result
- Time
-
or nil
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 40 def stamp if attributes['stamp'] begin # Actually this should be Time.xmlschema, # but "unfortunately, the 'jabber:x:delay' namespace predates" JEP 0082 Time.parse(attributes['stamp']) rescue ArgumentError nil end else nil end end |
#stamp=(t) ⇒ Object
Set the timestamp
- t
- Time
-
or nil
57 58 59 60 61 62 63 |
# File 'lib/xmpp4r/delay/x/delay.rb', line 57 def stamp=(t) if t.nil? attributes['stamp'] = nil else attributes['stamp'] = t.strftime("%Y%m%dT%H:%M:%S") end end |