SOAP::SOAPBody (Class)

In: soap/rpc/element.rb
soap/element.rb
Parent: SOAPStruct

Add method definitions for RPC to common definition in element.rb

Methods

encode   fault   fault=   new   outparams   request   response   root_node   void?  

Included Modules

SOAPEnvelopeElement

Public Class methods

[Source]

# File soap/element.rb, line 96
  def initialize(data = nil, is_fault = false)
    super(nil)
    @elename = EleBodyName
    @encodingstyle = nil
    add(data.elename.name, data) if data
    @is_fault = is_fault
  end

Public Instance methods

[Source]

# File soap/element.rb, line 104
  def encode(generator, ns, attrs = {})
    name = ns.name(@elename)
    generator.encode_tag(name, attrs)
    if @is_fault
      yield(@data, true)
    else
      @data.each do |data|
        yield(data, true)
      end
    end
    generator.encode_tag_end(name, true)
  end

[Source]

# File soap/rpc/element.rb, line 49
  def fault
    if @is_fault
      self['fault']
    else
      nil
    end
  end

[Source]

# File soap/rpc/element.rb, line 57
  def fault=(fault)
    @is_fault = true
    add_member('fault', fault)
  end

[Source]

# File soap/rpc/element.rb, line 35
  def outparams
    if !@is_fault and !void?
      op = root_node[1..-1]
      op = nil if op && op.empty?
      op
    else
      nil
    end
  end

[Source]

# File soap/rpc/element.rb, line 18
  def request
    root_node
  end

[Source]

# File soap/rpc/element.rb, line 22
  def response
    if !@is_fault
      if void?
        nil
      else
        # Initial element is [retval].

        root_node[0]
      end
    else
      root_node
    end
  end

[Source]

# File soap/element.rb, line 117
  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 SOAPParser::FormatDecodeError.new('No root element.')
  end

[Source]

# File soap/rpc/element.rb, line 45
  def void?
    root_node.nil? # || root_node.is_a?(SOAPNil)

  end

[Validate]