Parent

Included Modules

Files

Class/Module Index [+]

Quicksearch

SOAP::SOAPReference

Convenience datatypes.

Attributes

refid[RW]

Public Class Methods

create_refid(obj) click to toggle source
# File lib/soap/baseData.rb, line 180
def self.create_refid(obj)
  'id' + obj.__id__.to_s
end
decode(elename, refidstr) click to toggle source
# File lib/soap/baseData.rb, line 184
def self.decode(elename, refidstr)
  if /\A#(.*)\z/ =~ refidstr
    refid = $1
  elsif /\Acid:(.*)\z/ =~ refidstr
    refid = $1
  else
    raise ArgumentError.new("illegal refid #{refidstr}")
  end
  d = super(elename)
  d.refid = refid
  d
end
new(obj = nil) click to toggle source

Override the definition in SOAPBasetype.

# File lib/soap/baseData.rb, line 131
def initialize(obj = nil)
  super()
  @type = XSD::QName::EMPTY
  @refid = nil
  @obj = nil
  __setobj__(obj) if obj
end

Public Instance Methods

__getobj__() click to toggle source
# File lib/soap/baseData.rb, line 139
def __getobj__
  @obj
end
__setobj__(obj) click to toggle source
# File lib/soap/baseData.rb, line 143
def __setobj__(obj)
  @obj = obj
  @refid = @obj.id || SOAPReference.create_refid(@obj)
  @obj.id = @refid unless @obj.id
  @obj.precedents << self
  # Copies NSDBase information
  @obj.type = @type unless @obj.type
end
data() click to toggle source

for referenced base type such as a long value from Axis. base2obj requires a node to respond to :data

# File lib/soap/baseData.rb, line 170
def data
  if @obj.respond_to?(:data)
    @obj.data
  end
end
method_missing(msg_id, *params) click to toggle source

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…

# File lib/soap/baseData.rb, line 160
def method_missing(msg_id, *params)
  if @obj
    @obj.send(msg_id, *params)
  else
    nil
  end
end
refidstr() click to toggle source
# File lib/soap/baseData.rb, line 176
def refidstr
  '#' + @refid
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.