class SOAP::SOAPReference
Convenience datatypes.
Attributes
refid[RW]
Public Class Methods
create_refid(obj)
click to toggle source
# File lib/soap/baseData.rb, line 156 def self.create_refid(obj) 'id' + obj.__id__.to_s end
decode(elename, refidstr)
click to toggle source
Calls superclass method
# File lib/soap/baseData.rb, line 160 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
.
Calls superclass method
SOAP::SOAPBasetype::new
# File lib/soap/baseData.rb, line 115 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 123 def __getobj__ @obj end
__setobj__(obj)
click to toggle source
# File lib/soap/baseData.rb, line 127 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
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 144 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 152 def refidstr '#' + @refid end