method
add_elements2stubobj

v1_8_7_72 -
Show latest stable
-
0 notes -
Class: SOAP::Mapping::WSDLEncodedRegistry
- 1_8_6_287 (0)
- 1_8_7_72 (0)
- 1_8_7_330 (0)
- 1_9_1_378
- 1_9_2_180
- 1_9_3_125
- 1_9_3_392
- 2_1_10
- 2_2_9
- 2_4_6
- 2_5_5
- 2_6_3
- What's this?
add_elements2stubobj(node, obj)
private
Hide source
# File lib/soap/mapping/wsdlencodedregistry.rb, line 234 def add_elements2stubobj(node, obj) elements, as_array = schema_element_definition(obj.class) vars = {} node.each do |name, value| item = elements.find { |k, v| k.name == name } if item elename, class_name = item if klass = Mapping.class_from_name(class_name) # klass must be a SOAPBasetype or a class if klass.ancestors.include?(::SOAP::SOAPBasetype) if value.respond_to?(:data) child = klass.new(value.data).data else child = klass.new(nil).data end else child = Mapping._soap2obj(value, self, klass) end elsif klass = Mapping.module_from_name(class_name) # simpletype if value.respond_to?(:data) child = value.data else raise MappingError.new( "cannot map to a module value: #{class_name}") end else raise MappingError.new("unknown class: #{class_name}") end else # untyped element is treated as anyType. child = Mapping._soap2obj(value, self) end vars[name] = child end Mapping.set_attributes(obj, vars) end