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

Changeset 1641

Show
Ignore:
Timestamp:
10/16/05 21:24:27 (3 years ago)
Author:
nahi
Message:

fixed a bug: with a WSDL which defines an element which name is capitalized ("Name") and rpc/encoded services, a Driver which is generated by WSDLDriverFactory wrongly generated nil element for the defined one in XML instance. closes #162.

Files:

Legend:

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

    r1638 r1641  
    274274  def self.get_attribute(obj, attr_name) 
    275275    if obj.is_a?(::Hash) 
    276       obj[attr_name] || obj[attr_name.intern] 
    277     else 
    278       name = XSD::CodeGen::GenSupport.safevarname(attr_name) 
    279       if obj.instance_variables.include?('@' + name) 
    280         obj.instance_variable_get('@' + name) 
    281       elsif ((obj.is_a?(::Struct) or obj.is_a?(Marshallable)) and 
    282           obj.respond_to?(name)) 
    283         obj.__send__(name) 
    284       end 
    285     end 
     276      return obj[attr_name] || obj[attr_name.intern] 
     277    end 
     278    iv = obj.instance_variables 
     279    name = XSD::CodeGen::GenSupport.safevarname(attr_name) 
     280    if iv.include?("@#{name}") 
     281      return obj.instance_variable_get("@#{name}") 
     282    elsif iv.include?("@#{attr_name}") 
     283      return obj.instance_variable_get("@#{attr_name}") 
     284    end 
     285    if obj.is_a?(::Struct) or obj.is_a?(Marshallable) 
     286      if obj.respond_to?(name) 
     287        return obj.__send__(name) 
     288      elsif obj.respond_to?(attr_name) 
     289        return obj.__send__(attr_name) 
     290      end 
     291    end 
     292    nil 
    286293  end 
    287294