XMPPElement
A class used to build/parse <error/> elements. Look at XEP-0086 for explanation: www.xmpp.org/extensions/xep-0086.html
FIXME : XEP-0086 is officially deprecated. What effect does that have on this class? Any?
errorcondition |
|
"bad-request"
"conflict"
"feature-not-implemented"
"forbidden"
"gone"
"internal-server-error"
"item-not-found"
"jid-malformed"
"not-acceptable"
"not-allowed"
"not-authorized"
"payment-required"
"recipient-unavailable"
"redirect"
"registration-required"
"remote-server-not-found"
"remote-server-timeout"
"resource-constraint"
"service-unavailable"
"subscription-required"
"undefined-condition"
"unexpected-request"
Will raise an [Exception] if not [nil] and none of the above
Also sets type and code to appropriate values according to errorcondition
text: [nil] or [String] ErrorResponse text
# File lib/xmpp4r/errors.rb, line 100 def initialize(errorcondition=nil, text=nil) if errorcondition.nil? super() set_text(text) unless text.nil? else errortype = nil errorcode = nil @@Errors.each { |cond,type,code| if errorcondition == cond errortype = type errorcode = code end } if errortype.nil? || errorcode.nil? raise ArgumentError, "Unknown error condition when initializing ErrorReponse" end super() set_error(errorcondition) set_type(errortype) set_code(errorcode) set_text(text) unless text.nil? end end
Get the 'Legacy error code' or nil
result |
|
# File lib/xmpp4r/errors.rb, line 129 def code if attributes['code'] attributes['code'].to_i else nil end end
Set the 'Legacy error code' or nil
i |
|
# File lib/xmpp4r/errors.rb, line 140 def code=(i) if i.nil? attributes['code'] = nil else attributes['code'] = i.to_s end end
Get the 'XMPP error condition'
This can be anything that possess the specific namespace, checks don't apply here
# File lib/xmpp4r/errors.rb, line 160 def error name = nil each_element { |e| name = e.name if (e.namespace == 'urn:ietf:params:xml:ns:xmpp-stanzas') && (e.name != 'text') } name end
Set the 'XMPP error condition'
One previous element with that namespace will be deleted before
s |
|
namespace will be added automatically, checks don't apply here
# File lib/xmpp4r/errors.rb, line 173 def error=(s) xe = nil each_element { |e| xe = e if (e.namespace == 'urn:ietf:params:xml:ns:xmpp-stanzas') && (e.name != 'text') } unless xe.nil? delete_element(xe) end add_element(s).add_namespace('urn:ietf:params:xml:ns:xmpp-stanzas') end
Set the 'Legacy error code' (chaining-friendly)
# File lib/xmpp4r/errors.rb, line 150 def set_code(i) self.code = i self end
Set the 'XMPP error condition' (chaining-friendly)
# File lib/xmpp4r/errors.rb, line 185 def set_error(s) self.error = s self end
Set the errors <text/> element text (chaining-friendly)
# File lib/xmpp4r/errors.rb, line 213 def set_text(s) self.text = s self end
Set the type of error (chaining-friendly)
# File lib/xmpp4r/errors.rb, line 253 def set_type(t) self.type = t self end
Get the errors <text/> element text
result |
|
# File lib/xmpp4r/errors.rb, line 193 def text first_element_text('text') || super end
Set the errors <text/> element text (Previous <text/> elements will be deleted first)
s |
|
# File lib/xmpp4r/errors.rb, line 201 def text=(s) delete_elements('text') unless s.nil? e = add_element('text') e.add_namespace('urn:ietf:params:xml:ns:xmpp-stanzas') e.text = s end end
Get the type of error (meaning how to proceed)
result |
|
:auth
:cancel
:continue
:modify
:wait
# File lib/xmpp4r/errors.rb, line 227 def type case attributes['type'] when 'auth' then :auth when 'cancel' then :cancel when 'continue' then :continue when 'modify' then :modify when 'wait' then :wait else nil end end
Set the type of error (see ErrorResponse#type)
# File lib/xmpp4r/errors.rb, line 240 def type=(t) case t when :auth then attributes['type'] = 'auth' when :cancel then attributes['type'] = 'cancel' when :continue then attributes['type'] = 'continue' when :modify then attributes['type'] = 'modify' when :wait then attributes['type'] = 'wait' else attributes['type'] = nil end end
Generated with the Darkfish Rdoc Generator 2.