Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1688

Show
Ignore:
Timestamp:
07/22/06 22:30:20 (2 years ago)
Author:
nahi
Message:

WSDLEncodedRegistry uses type.content.elements directly. Should use type.elements (a wrapper which checks complexContent, too). fixes #225.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/mapping/mapping.rb

    r1683 r1688  
    289289 
    290290  def self.get_attribute(obj, attr_name) 
    291     if obj.is_a?(::Hash) 
     291    case obj 
     292    when ::SOAP::Mapping::Object 
     293      return obj[attr_name] 
     294    when ::Hash 
    292295      return obj[attr_name] || obj[attr_name.intern] 
    293     end 
    294     iv = obj.instance_variables 
    295     name = XSD::CodeGen::GenSupport.safevarname(attr_name) 
    296     if iv.include?("@#{name}") 
    297       return obj.instance_variable_get("@#{name}") 
    298     elsif iv.include?("@#{attr_name}") 
    299       return obj.instance_variable_get("@#{attr_name}") 
    300     end 
    301     if obj.is_a?(::Struct) or obj.is_a?(Marshallable) 
    302       if obj.respond_to?(name) 
    303         return obj.__send__(name) 
    304       elsif obj.respond_to?(attr_name) 
    305         return obj.__send__(attr_name) 
    306       end 
    307     end 
    308     nil 
     296    else 
     297      iv = obj.instance_variables 
     298      name = XSD::CodeGen::GenSupport.safevarname(attr_name) 
     299      if iv.include?("@#{name}") 
     300        return obj.instance_variable_get("@#{name}") 
     301      elsif iv.include?("@#{attr_name}") 
     302        return obj.instance_variable_get("@#{attr_name}") 
     303      end 
     304      if obj.is_a?(::Struct) or obj.is_a?(Marshallable) 
     305        if obj.respond_to?(name) 
     306          return obj.__send__(name) 
     307        elsif obj.respond_to?(attr_name) 
     308          return obj.__send__(attr_name) 
     309        end 
     310      end 
     311      nil 
     312    end 
    309313  end 
    310314 
  • trunk/lib/soap/mapping/wsdlencodedregistry.rb

    r1679 r1688  
    9999      soap_obj = obj 
    100100      mark_marshalled_obj(obj, soap_obj) 
    101       elements2soap(obj, soap_obj, type.content.elements) 
     101      elements2soap(obj, soap_obj, type.elements) 
    102102      soap_obj 
    103103    elsif obj.is_a?(SOAPArray) && (type = @definedtypes[type_qname]) 
     
    172172    unless obj.nil? 
    173173      mark_marshalled_obj(obj, soap_obj) 
    174       elements2soap(obj, soap_obj, type.content.elements) 
     174      elements2soap(obj, soap_obj, type.elements) 
    175175    end 
    176176    soap_obj