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.
121 122 123 124 125 126 127 |
# File 'lib/soap/baseData.rb', line 121 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…
150 151 152 153 154 155 156 |
# File 'lib/soap/baseData.rb', line 150 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.
118 119 120 |
# File 'lib/soap/baseData.rb', line 118 def refid @refid end |
Class Method Details
.create_refid(obj) ⇒ Object
162 163 164 |
# File 'lib/soap/baseData.rb', line 162 def self.create_refid(obj) 'id' + obj.__id__.to_s end |
.decode(elename, refidstr) ⇒ Object
166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/soap/baseData.rb', line 166 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
129 130 131 |
# File 'lib/soap/baseData.rb', line 129 def __getobj__ @obj end |
#__setobj__(obj) ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'lib/soap/baseData.rb', line 133 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
158 159 160 |
# File 'lib/soap/baseData.rb', line 158 def refidstr '#' + @refid end |