Changeset 1908
- Timestamp:
- 07/31/07 22:12:18 (1 year ago)
- Files:
-
- trunk/lib/soap/baseData.rb (modified) (4 diffs)
- trunk/lib/soap/mapping/encodedregistry.rb (modified) (2 diffs)
- trunk/lib/soap/mapping/literalregistry.rb (modified) (2 diffs)
- trunk/lib/soap/rpc/router.rb (modified) (1 diff)
- trunk/test/soap/fault/test_soaparray.rb (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/baseData.rb
r1892 r1908 107 107 end 108 108 109 # marker for compound types which have named accessor 110 module SOAPNameAccessible 111 end 112 109 113 110 114 ### … … 509 513 # 510 514 class SOAPStruct < XSD::NSDBase 515 include Enumerable 511 516 include SOAPCompoundtype 512 include Enumerable517 include SOAPNameAccessible 513 518 514 519 public … … 627 632 include Enumerable 628 633 include SOAPCompoundtype 634 include SOAPNameAccessible 629 635 630 636 attr_accessor :type … … 694 700 695 701 def to_obj 696 if members.empty?702 if !have_member 697 703 @text 698 704 else trunk/lib/soap/mapping/encodedregistry.rb
r1866 r1908 325 325 def _obj2soap(obj, type_qname = nil) 326 326 ret = nil 327 if obj.is_a?(SOAP Struct) or obj.is_a?(SOAPArray)327 if obj.is_a?(SOAPCompoundtype) 328 328 obj.replace do |ele| 329 329 Mapping._obj2soap(ele, self) … … 366 366 klass = definition.class_for if definition 367 367 end 368 if definition and node.is_a?(::SOAP::SOAP Struct)368 if definition and node.is_a?(::SOAP::SOAPNameAccessible) 369 369 return elesoap2stubobj(node, klass, definition) 370 370 end trunk/lib/soap/mapping/literalregistry.rb
r1907 r1908 227 227 if definition 228 228 return elesoap2stubobj(node, obj_class, definition) 229 els e229 elsif node.is_a?(::SOAP::SOAPNameAccessible) 230 230 return elesoap2plainobj(node) 231 231 end … … 250 250 def elesoap2plainobj(node) 251 251 obj = nil 252 if node.members.empty?252 if !node.have_member 253 253 obj = base2obj(node, ::SOAP::SOAPString) 254 254 else trunk/lib/soap/rpc/router.rb
r1875 r1908 477 477 def request_rpc(body, mapping_registry, literal_mapping_registry, opt) 478 478 request = body.request 479 unless request.is_a?(SOAP Struct)479 unless request.is_a?(SOAPNameAccessible) 480 480 if request.is_a?(SOAPNil) 481 481 # SOAP::Lite/0.69 seems to send xsi:nil="true" element as a request.