Class: LolSoap::Response
- Inherits:
-
Object
- Object
- LolSoap::Response
- Defined in:
- lib/lolsoap/response.rb
Instance Attribute Summary collapse
-
#doc ⇒ Object
readonly
Returns the value of attribute doc.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Class Method Summary collapse
-
.parse(request, raw) ⇒ Object
Create a new instance from a raw XML string.
Instance Method Summary collapse
-
#body ⇒ Object
The XML node for the body of the envelope.
-
#body_hash(builder = HashBuilder) ⇒ Object
Convert the body node to a Hash, using WSDL type data to determine the structure.
-
#fault ⇒ Object
SOAP fault, if any (an exception will be raised in the initializer, if there is one).
-
#header ⇒ Object
The XML node for the header of the envelope.
-
#initialize(request, doc) ⇒ Response
constructor
A new instance of Response.
-
#soap_namespace ⇒ Object
Namespace used for SOAP Envelope tags.
Constructor Details
#initialize(request, doc) ⇒ Response
Returns a new instance of Response.
22 23 24 25 26 27 |
# File 'lib/lolsoap/response.rb', line 22 def initialize(request, doc) @request = request @doc = doc raise FaultRaised.new(fault) if fault end |
Instance Attribute Details
#doc ⇒ Object (readonly)
Returns the value of attribute doc.
8 9 10 |
# File 'lib/lolsoap/response.rb', line 8 def doc @doc end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
8 9 10 |
# File 'lib/lolsoap/response.rb', line 8 def request @request end |
Class Method Details
.parse(request, raw) ⇒ Object
Create a new instance from a raw XML string
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/lolsoap/response.rb', line 11 def self.parse(request, raw) new( request, Nokogiri::XML::Document.parse( raw, nil, nil, Nokogiri::XML::ParseOptions::DEFAULT_XML & Nokogiri::XML::ParseOptions::STRICT ) ) end |
Instance Method Details
#body ⇒ Object
The XML node for the body of the envelope
35 36 37 |
# File 'lib/lolsoap/response.rb', line 35 def body @body ||= doc.at_xpath('/soap:Envelope/soap:Body/*', 'soap' => soap_namespace) end |
#body_hash(builder = HashBuilder) ⇒ Object
Convert the body node to a Hash, using WSDL type data to determine the structure
40 41 42 |
# File 'lib/lolsoap/response.rb', line 40 def body_hash(builder = HashBuilder) builder.new(body, request.output_type).output end |
#fault ⇒ Object
SOAP fault, if any (an exception will be raised in the initializer, if there is one)
50 51 52 53 54 55 |
# File 'lib/lolsoap/response.rb', line 50 def fault @fault ||= begin node = doc.at_xpath('/soap:Envelope/soap:Body/soap:Fault', 'soap' => soap_namespace) Fault.new(request, node) if node end end |
#header ⇒ Object
The XML node for the header of the envelope
45 46 47 |
# File 'lib/lolsoap/response.rb', line 45 def header @header ||= doc.at_xpath('/soap:Envelope/soap:Header', 'soap' => soap_namespace) end |
#soap_namespace ⇒ Object
Namespace used for SOAP Envelope tags
30 31 32 |
# File 'lib/lolsoap/response.rb', line 30 def soap_namespace request.soap_namespace end |