Class SOAP::Mapping::ArrayFactory_
In: lib/soap/mapping/factory.rb
Parent: Factory

Methods

new   obj2soap   soap2obj  

Public Class methods

[Source]

     # File lib/soap/mapping/factory.rb, line 206
206:   def initialize(allow_original_mapping = false)
207:     super()
208:     @allow_original_mapping = allow_original_mapping
209:   end

Public Instance methods

[1], [2]
is converted to Array of Array, not 2-D Array.

To create M-D Array, you must call Mapping.ary2md.

[Source]

     # File lib/soap/mapping/factory.rb, line 213
213:   def obj2soap(soap_class, obj, info, map)
214:     if !@allow_original_mapping and !obj.instance_variables.empty?
215:       return nil
216:     end
217:     arytype = Mapping.obj2element(obj)
218:     if arytype.name
219:       arytype.namespace ||= RubyTypeNamespace
220:     else
221:       arytype = XSD::AnyTypeName
222:     end
223:     soap_obj = SOAPArray.new(ValueArrayName, 1, arytype)
224:     mark_marshalled_obj(obj, soap_obj)
225:     obj.each do |item|
226:       soap_obj.add(Mapping._obj2soap(item, map))
227:     end
228:     soap_obj
229:   end

[Source]

     # File lib/soap/mapping/factory.rb, line 231
231:   def soap2obj(obj_class, node, info, map)
232:     obj = Mapping.create_empty_object(obj_class)
233:     mark_unmarshalled_obj(node, obj)
234:     node.soap2array(obj) do |elem|
235:       elem ? Mapping._soap2obj(elem, map) : nil
236:     end
237:     return true, obj
238:   end

[Validate]