Exception: Blather::StreamError
- Inherits:
-
BlatherError
- Object
- StandardError
- BlatherError
- Blather::StreamError
- Defined in:
- lib/blather/errors/stream_error.rb
Overview
Stream Errors [RFC3920 Section 9.3](xmpp.org/rfcs/rfc3920.html#streams-error-rules)
Constant Summary collapse
- STREAM_ERR_NS =
'urn:ietf:params:xml:ns:xmpp-streams'
Instance Attribute Summary collapse
-
#extras ⇒ Object
readonly
Returns the value of attribute extras.
-
#text ⇒ Object
readonly
Returns the value of attribute text.
Class Method Summary collapse
-
.import(node) ⇒ Object
Factory method for instantiating the proper class for the error.
Instance Method Summary collapse
-
#initialize(name, text = nil, extras = []) ⇒ StreamError
constructor
Create a new Stream Error [RFC3920 Section 4.7.2](xmpp.org/rfcs/rfc3920.html#rfc.section.4.7.2).
- #inspect ⇒ Object (also: #to_s)
-
#name ⇒ Symbol
The error name.
-
#to_node ⇒ Blather::XMPPNode
Creates an XML node from the error.
-
#to_xml ⇒ String
Convert the object to a proper node then convert it to a string.
Methods inherited from BlatherError
Constructor Details
#initialize(name, text = nil, extras = []) ⇒ StreamError
Create a new Stream Error [RFC3920 Section 4.7.2](xmpp.org/rfcs/rfc3920.html#rfc.section.4.7.2)
error
35 36 37 38 39 |
# File 'lib/blather/errors/stream_error.rb', line 35 def initialize(name, text = nil, extras = []) @name = name @text = text @extras = extras end |
Instance Attribute Details
#extras ⇒ Object (readonly)
Returns the value of attribute extras.
12 13 14 |
# File 'lib/blather/errors/stream_error.rb', line 12 def extras @extras end |
#text ⇒ Object (readonly)
Returns the value of attribute text.
12 13 14 |
# File 'lib/blather/errors/stream_error.rb', line 12 def text @text end |
Class Method Details
.import(node) ⇒ Object
Factory method for instantiating the proper class for the error
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/blather/errors/stream_error.rb', line 17 def self.import(node) name = node.find_first('descendant::*[name()!="text"]', STREAM_ERR_NS).element_name text = node.find_first 'descendant::*[name()="text"]', STREAM_ERR_NS text = text.content if text extras = node.find("descendant::*[namespace-uri()!='#{STREAM_ERR_NS}']").map { |n| n } self.new name, text, extras end |
Instance Method Details
#inspect ⇒ Object Also known as: to_s
75 76 77 |
# File 'lib/blather/errors/stream_error.rb', line 75 def inspect "Stream Error (#{@name}): #{self.text}" + (self.extras.empty? ? '' : " [#{self.extras}]") end |
#name ⇒ Symbol
The error name
44 45 46 |
# File 'lib/blather/errors/stream_error.rb', line 44 def name @name.gsub('-','_').to_sym end |
#to_node ⇒ Blather::XMPPNode
Creates an XML node from the error
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/blather/errors/stream_error.rb', line 51 def to_node node = XMPPNode.new('stream:error') node << (err = XMPPNode.new(@name, node.document)) err.namespace = 'urn:ietf:params:xml:ns:xmpp-streams' if self.text node << (text = XMPPNode.new('text', node.document)) text.namespace = 'urn:ietf:params:xml:ns:xmpp-streams' text.content = self.text end self.extras.each { |extra| node << extra.dup } node end |
#to_xml ⇒ String
Convert the object to a proper node then convert it to a string
70 71 72 |
# File 'lib/blather/errors/stream_error.rb', line 70 def to_xml to_node.to_s end |