Class: Savon::SOAPFault

Inherits:
Error
  • Object
show all
Defined in:
lib/savon/soap_fault.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http, nori, xml = nil) ⇒ SOAPFault

Returns a new instance of SOAPFault.


13
14
15
16
17
# File 'lib/savon/soap_fault.rb', line 13

def initialize(http, nori, xml = nil)
  @xml = xml
  @http = http
  @nori = nori
end

Instance Attribute Details

#httpObject (readonly)

Returns the value of attribute http


19
20
21
# File 'lib/savon/soap_fault.rb', line 19

def http
  @http
end

#noriObject (readonly)

Returns the value of attribute nori


19
20
21
# File 'lib/savon/soap_fault.rb', line 19

def nori
  @nori
end

#xmlObject (readonly)

Returns the value of attribute xml


19
20
21
# File 'lib/savon/soap_fault.rb', line 19

def xml
  @xml
end

Class Method Details

.present?(http, xml = nil) ⇒ Boolean

Returns:

  • (Boolean)

4
5
6
7
8
9
10
11
# File 'lib/savon/soap_fault.rb', line 4

def self.present?(http, xml = nil)
  xml ||= http.body
  fault_node  = xml.include?("Fault>")
  soap1_fault = xml.match(/faultcode\/?\>/) && xml.match(/faultstring\/?\>/)
  soap2_fault = xml.include?("Code>") && xml.include?("Reason>")

  fault_node && (soap1_fault || soap2_fault)
end

Instance Method Details

#to_hashObject


26
27
28
29
# File 'lib/savon/soap_fault.rb', line 26

def to_hash
  parsed = nori.parse(xml || http.body)
  nori.find(parsed, 'Envelope', 'Body') || {}
end

#to_sObject


21
22
23
24
# File 'lib/savon/soap_fault.rb', line 21

def to_s
  fault = nori.find(to_hash, 'Fault') || nori.find(to_hash, 'ServiceFault')
  message_by_version(fault)
end