class LolSoap::Response

Attributes

doc[R]
request[R]

Public Class Methods

new(request, doc) click to toggle source
# File lib/lolsoap/response.rb, line 21
def initialize(request, doc)
  @request = request
  @doc     = doc
end
parse(request, raw) click to toggle source

Create a new instance from a raw XML string

# File lib/lolsoap/response.rb, line 10
def self.parse(request, raw)
  new(
    request,
    Nokogiri::XML::Document.parse(
      raw, nil, nil,
      Nokogiri::XML::ParseOptions::DEFAULT_XML &
        Nokogiri::XML::ParseOptions::STRICT
    )
  )
end

Public Instance Methods

body() click to toggle source

The XML node for the body of the envelope

# File lib/lolsoap/response.rb, line 32
def body
  @body ||= doc.at_xpath('/soap:Envelope/soap:Body/*', 'soap' => soap_namespace)
end
body_hash(builder = HashBuilder) click to toggle source

Convert the body node to a Hash, using WSDL type data to determine the structure

# File lib/lolsoap/response.rb, line 37
def body_hash(builder = HashBuilder)
  builder.new(body, request.output_type).output
end
fault() click to toggle source

SOAP fault, if any

# File lib/lolsoap/response.rb, line 47
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() click to toggle source

The XML node for the header of the envelope

# File lib/lolsoap/response.rb, line 42
def header
  @header ||= doc.at_xpath('/soap:Envelope/soap:Header', 'soap' => soap_namespace)
end
soap_namespace() click to toggle source

Namespace used for SOAP Envelope tags

# File lib/lolsoap/response.rb, line 27
def soap_namespace
  request.soap_namespace
end