Class SOAP::SOAPElement
In: soap/baseData.rb
Parent: Object

SOAPElement is not typed so it is not derived from NSDBase.

Methods

[]   []=   add   decode   each   from_obj   key?   members   new   to_obj  

Included Modules

Enumerable

Attributes

elename  [RW] 
encodingstyle  [RW] 
extraattr  [RW] 
id  [RW] 
parent  [RW] 
position  [RW] 
precedents  [R] 
qualified  [RW] 
root  [RW] 
text  [RW]  Text interface.

Public Class methods

[Source]

# File soap/baseData.rb, line 518
  def self.decode(elename)
    o = SOAPElement.new(elename)
    o
  end

[Source]

# File soap/baseData.rb, line 523
  def self.from_obj(hash_or_string)
    o = SOAPElement.new(nil)
    if hash_or_string.is_a?(Hash)
      hash_or_string.each do |k, v|
        child = self.from_obj(v)
        child.elename = k.is_a?(XSD::QName) ? k : XSD::QName.new(nil, k.to_s)
        o.add(child)
      end
    else
      o.text = hash_or_string
    end
    o
  end

[Source]

# File soap/baseData.rb, line 447
  def initialize(elename, text = nil)
    if !elename.is_a?(XSD::QName)
      elename = XSD::QName.new(nil, elename)
    end
    @encodingstyle = LiteralNamespace
    @elename = elename
    @id = nil
    @precedents = []
    @root = false
    @parent = nil
    @position = nil
    @extraattr = {}

    @qualified = false

    @array = []
    @data = []
    @text = text
  end

Public Instance methods

[Source]

# File soap/baseData.rb, line 475
  def [](idx)
    if @array.include?(idx)
      @data[@array.index(idx)]
    else
      nil
    end
  end

[Source]

# File soap/baseData.rb, line 483
  def []=(idx, data)
    if @array.include?(idx)
      data.parent = self if data.respond_to?(:parent=)
      @data[@array.index(idx)] = data
    else
      add(data)
    end
  end

Element interfaces.

[Source]

# File soap/baseData.rb, line 471
  def add(value)
    add_member(value.elename.name, value)
  end

[Source]

# File soap/baseData.rb, line 512
  def each
    for i in 0..(@array.length - 1)
      yield(@array[i], @data[i])
    end
  end

[Source]

# File soap/baseData.rb, line 492
  def key?(name)
    @array.include?(name)
  end

[Source]

# File soap/baseData.rb, line 496
  def members
    @array
  end

[Source]

# File soap/baseData.rb, line 500
  def to_obj
    if members.empty?
      @text
    else
      hash = {}
      each do |k, v|
        hash[k] = v.is_a?(SOAPElement) ? v.to_obj : v.to_s
      end
      hash
    end
  end

[Validate]