Class: SOAP::SOAPReference
- Inherits:
-
XSD::NSDBase
- Object
- XSD::NSDBase
- SOAP::SOAPReference
- Extended by:
- SOAPModuleUtils
- Includes:
- SOAPBasetype
- Defined in:
- lib/soap/baseData.rb
Overview
Convenience datatypes.
Constant Summary
Constants included from SOAP
AttrActor, AttrActorName, AttrArrayType, AttrArrayTypeName, AttrEncodingStyle, AttrEncodingStyleName, AttrMustUnderstand, AttrMustUnderstandName, AttrOffset, AttrOffsetName, AttrPosition, AttrPositionName, AttrRoot, AttrRootName, Base64Literal, Charset, EleBody, EleBodyName, EleEnvelope, EleEnvelopeName, EleFault, EleFaultActor, EleFaultActorName, EleFaultCode, EleFaultCodeName, EleFaultDetail, EleFaultDetailName, EleFaultName, EleFaultString, EleFaultStringName, EleHeader, EleHeaderName, EncodingNamespace, EnvelopeNamespace, LiteralNamespace, MediaType, NS, NextActor, PropertyName, RPCRouter, RPCServerException, RPCUtils, SOAPNamespaceTag, SOAPProxy, TypeMap, VERSION, ValueArray, ValueArrayName, XSDNamespaceTag, XSINamespaceTag
Instance Attribute Summary collapse
-
#refid ⇒ Object
Returns the value of attribute refid.
Attributes included from SOAPBasetype
Attributes included from SOAPType
#definedtype, #elename, #encodingstyle, #extraattr, #id, #parent, #position, #precedents, #root
Attributes inherited from XSD::NSDBase
Class Method Summary collapse
Instance Method Summary collapse
- #__getobj__ ⇒ Object
- #__setobj__(obj) ⇒ Object
-
#initialize(obj = nil) ⇒ SOAPReference
constructor
Override the definition in SOAPBasetype.
-
#method_missing(msg_id, *params) ⇒ Object
Why don’t I use delegate.rb? -> delegate requires target object type at initialize time.
- #refidstr ⇒ Object
Methods included from SOAPModuleUtils
Methods included from SOAPType
Methods inherited from XSD::NSDBase
Constructor Details
#initialize(obj = nil) ⇒ SOAPReference
Override the definition in SOAPBasetype.
122 123 124 125 126 127 128 |
# File 'lib/soap/baseData.rb', line 122 def initialize(obj = nil) super() @type = XSD::QName::EMPTY @refid = nil @obj = nil __setobj__(obj) if obj end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(msg_id, *params) ⇒ Object
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…
151 152 153 154 155 156 157 |
# File 'lib/soap/baseData.rb', line 151 def method_missing(msg_id, *params) if @obj @obj.send(msg_id, *params) else nil end end |
Instance Attribute Details
#refid ⇒ Object
Returns the value of attribute refid.
119 120 121 |
# File 'lib/soap/baseData.rb', line 119 def refid @refid end |
Class Method Details
.create_refid(obj) ⇒ Object
163 164 165 |
# File 'lib/soap/baseData.rb', line 163 def self.create_refid(obj) 'id' + obj.__id__.to_s end |
.decode(elename, refidstr) ⇒ Object
167 168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/soap/baseData.rb', line 167 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 |
Instance Method Details
#__getobj__ ⇒ Object
130 131 132 |
# File 'lib/soap/baseData.rb', line 130 def __getobj__ @obj end |
#__setobj__(obj) ⇒ Object
134 135 136 137 138 139 140 141 |
# File 'lib/soap/baseData.rb', line 134 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 |
#refidstr ⇒ Object
159 160 161 |
# File 'lib/soap/baseData.rb', line 159 def refidstr '#' + @refid end |