diff --git a/lib/soap/mapping/mapping.rb b/lib/soap/mapping/mapping.rb index bd20534..4206267 100644 --- a/lib/soap/mapping/mapping.rb +++ b/lib/soap/mapping/mapping.rb @@ -251,7 +251,7 @@ def self.class2element(klass) def self.obj2element(obj) name = namespace = nil - ivars = obj.instance_variables + ivars = obj.instance_variables.collect{|t| t.to_s} if ivars.include?('@schema_type') name = obj.instance_variable_get('@schema_type') end @@ -286,7 +286,7 @@ def self.get_attributes(obj) else rs = {} obj.instance_variables.each do |ele| - rs[ele.sub(/^@/, '')] = obj.instance_variable_get(ele) + rs[ele.to_s.sub(/^@/, '')] = obj.instance_variable_get(ele) end rs end @@ -311,7 +311,7 @@ def self.get_attribute(obj, attr_name) if obj.respond_to?(attr_name) return obj.__send__(attr_name) end - iv = obj.instance_variables + iv = obj.instance_variables.collect{|t| t.to_s} name = Mapping.safevarname(attr_name) if iv.include?("@#{name}") return obj.instance_variable_get("@#{name}")