SOAP::SOAPReference (Class)

In: soap/baseData.rb
Parent: XSD::NSDBase

Convenience datatypes.

Methods

Attributes

elename  [RW] 
refid  [RW] 

Included Modules

SOAPBasetype

Public Class methods

[Source]

# File soap/baseData.rb, line 168
  def self.create_refid(obj)
    'id' << obj.__id__.to_s
  end

[Source]

# File soap/baseData.rb, line 162
  def self.decode(elename, refid)
    d = super(elename)
    d.refid = refid
    d
  end

Override the definition in SOAPBasetype.

[Source]

# File soap/baseData.rb, line 120
  def initialize(refid = nil)
    super()
    @type = XSD::QName.new
    @encodingstyle = nil
    @elename = XSD::QName.new
    @id = nil
    @precedents = []
    @root = false
    @parent = nil
    @refid = refid
    @obj = nil
  end

Public Instance methods

[Source]

# File soap/baseData.rb, line 133
  def __getobj__
    @obj
  end

[Source]

# File soap/baseData.rb, line 137
  def __setobj__(obj)
    @obj = obj
    @refid = SOAPReference.create_refid(@obj)
    @obj.id = @refid unless @obj.id
    @obj.precedents << self
    # Copies NSDBase information

    @obj.type = @type unless @obj.type
  end

Why don’t I use delegate.rb? -> delegate requires target object type at initialize time. Why don’t I use forwardable.rb? -> forwardable requires a list of forwarding methods.

ToDo: Maybe I should use forwardable.rb and give it a methods list like delegate.rb…

[Source]

# File soap/baseData.rb, line 154
  def method_missing(msg_id, *params)
    if @obj
      @obj.send(msg_id, *params)
    else
      nil
    end
  end

[Validate]