class SOAP::SOAPBody
Add method definitions for RPC
to common definition in element.rb
Attributes
is_fault[R]
Public Class Methods
new(data = nil, is_fault = false)
click to toggle source
Calls superclass method
SOAP::SOAPStruct::new
# File lib/soap/element.rb, line 99 def initialize(data = nil, is_fault = false) super(nil) @elename = EleBodyName @encodingstyle = nil if data if data.respond_to?(:to_xmlpart) data = SOAP::SOAPRawData.new(data) elsif defined?(::REXML) and data.is_a?(::REXML::Element) data = SOAP::SOAPRawData.new(SOAP::SOAPREXMLElementWrap.new(data)) end if data.respond_to?(:elename) add(data.elename.name, data) else data.to_a.each do |datum| add(datum.elename.name, datum) end end end @is_fault = is_fault end
Public Instance Methods
encode(generator, ns, attrs = {}) { |data| ... }
click to toggle source
# File lib/soap/element.rb, line 120 def encode(generator, ns, attrs = {}) name = ns.name(@elename) generator.encode_tag(name, attrs) @data.each do |data| yield(data) end generator.encode_tag_end(name, @data.size > 0) end
fault()
click to toggle source
# File lib/soap/rpc/element.rb, line 50 def fault if @is_fault self['fault'] else nil end end
fault=(fault)
click to toggle source
# File lib/soap/rpc/element.rb, line 58 def fault=(fault) @is_fault = true add('fault', fault) end
outparams()
click to toggle source
# File lib/soap/rpc/element.rb, line 39 def outparams root = root_node if !@is_fault and !root.nil? and !root.is_a?(SOAPBasetype) op = root[1..-1] op = nil if op && op.empty? op else nil end end
request()
click to toggle source
# File lib/soap/rpc/element.rb, line 19 def request root_node end
response()
click to toggle source
# File lib/soap/rpc/element.rb, line 23 def response root = root_node if !@is_fault if root.nil? nil elsif root.is_a?(SOAPBasetype) root else # Initial element is [retval]. root[0] end else root end end
root_node()
click to toggle source
# File lib/soap/element.rb, line 129 def root_node @data.each do |node| if node.root == 1 return node end end # No specified root... @data.each do |node| if node.root != 0 return node end end raise Parser::FormatDecodeError.new('no root element') end