Class: SOAP::SOAPStruct
  
  
  
Overview
  
  Constant Summary
  
  Constants included
     from SOAP
  AttrActor, AttrArrayType, AttrArrayTypeName, AttrEncodingStyle, AttrEncodingStyleName, AttrMustUnderstand, AttrMustUnderstandName, AttrOffset, AttrOffsetName, AttrPosition, AttrPositionName, AttrRoot, AttrRootName, Base64Literal, EleBody, EleBodyName, EleEnvelope, EleEnvelopeName, EleFault, EleFaultActor, EleFaultActorName, EleFaultCode, EleFaultCodeName, EleFaultDetail, EleFaultDetailName, EleFaultName, EleFaultString, EleFaultStringName, EleHeader, EleHeaderName, EncodingNamespace, EnvelopeNamespace, LiteralNamespace, MediaType, NextActor, PropertyName, SOAPNamespaceTag, TypeMap, VERSION, ValueArray, ValueArrayName, XSDNamespaceTag, XSINamespaceTag
  Instance Attribute Summary
  
  Attributes included from SOAPType
  #definedtype, #elename, #encodingstyle, #extraattr, #id, #parent, #position, #precedents, #root
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  Methods included from Enumerable
  #inject
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Methods included from SOAPType
  #inspect, #rootnode
  
  Constructor Details
  
    
  
  
    #initialize(type = nil)  ⇒ SOAPStruct 
  
  
  
  
    
Returns a new instance of SOAPStruct.
   
 
  
  
    
      
400
401
402
403
404
405 
     | 
    
      # File 'lib/soap/baseData.rb', line 400
def initialize(type = nil)
  super()
  @type = type || XSD::QName::EMPTY
  @array = []
  @data = []
end 
     | 
  
 
  
 
  
    Class Method Details
    
      
  
  
    .decode(elename, type)  ⇒ Object 
  
  
  
  
    
      
486
487
488
489
490 
     | 
    
      # File 'lib/soap/baseData.rb', line 486
def self.decode(elename, type)
  s = SOAPStruct.new(type)
  s.elename = elename
  s
end 
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    
      
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434 
     | 
    
      # File 'lib/soap/baseData.rb', line 419
def [](idx)
  if idx.is_a?(Range)
    @data[idx]
  elsif idx.is_a?(Integer)
    if (idx > @array.size)
      raise ArrayIndexOutOfBoundsError.new('In ' << @type.name)
    end
    @data[idx]
  else
    if @array.include?(idx)
	@data[@array.index(idx)]
    else
	nil
    end
  end
end
     | 
  
 
    
      
  
  
    #[]=(idx, data)  ⇒ Object 
  
  
  
  
    
      
436
437
438
439
440
441
442
443 
     | 
    
      # File 'lib/soap/baseData.rb', line 436
def []=(idx, data)
  if @array.include?(idx)
    data.parent = self if data.respond_to?(:parent=)
    @data[@array.index(idx)] = data
  else
    add(idx, data)
  end
end
     | 
  
 
    
      
  
  
    #add(name, value)  ⇒ Object 
  
  
  
  
    
      
415
416
417 
     | 
    
      # File 'lib/soap/baseData.rb', line 415
def add(name, value)
  add_member(name, value)
end 
     | 
  
 
    
      
  
  
    
      
472
473
474
475
476
477
478 
     | 
    
      # File 'lib/soap/baseData.rb', line 472
def each
  idx = 0
  while idx < @array.length
    yield(@array[idx], @data[idx])
    idx += 1
  end
end
     | 
  
 
    
      
  
  
    #key?(name)  ⇒ Boolean 
  
  
  
  
    
      
445
446
447 
     | 
    
      # File 'lib/soap/baseData.rb', line 445
def key?(name)
  @array.include?(name)
end 
     | 
  
 
    
      
  
  
    
      
449
450
451 
     | 
    
      # File 'lib/soap/baseData.rb', line 449
def members
  @array
end 
     | 
  
 
    
      
  
  
    
      
480
481
482
483
484 
     | 
    
      # File 'lib/soap/baseData.rb', line 480
def replace
  members.each do |member|
    self[member] = yield(self[member])
  end
end
     | 
  
 
    
      
  
  
    
      
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470 
     | 
    
      # File 'lib/soap/baseData.rb', line 453
def to_obj
  hash = {}
  proptype = {}
  each do |k, v|
    value = v.respond_to?(:to_obj) ? v.to_obj : v.to_s
    case proptype[k]
    when :single
      hash[k] = [hash[k], value]
      proptype[k] = :multi
    when :multi
      hash[k] << value
    else
      hash[k] = value
      proptype[k] = :single
    end
  end
  hash
end
     | 
  
 
    
      
  
  
    
      
407
408
409
410
411
412
413 
     | 
    
      # File 'lib/soap/baseData.rb', line 407
def to_s()
  str = ''
  self.each do |key, data|
    str << "#{key}: #{data}\n"
  end
  str
end
     |