Class: SOAP::Mapping::HashFactory_
Instance Method Summary
collapse
Methods inherited from Factory
#setiv2obj, #setiv2soap
#mark_marshalled_obj, #mark_unmarshalled_obj
Constructor Details
#initialize(allow_original_mapping = false) ⇒ HashFactory_
337
338
339
340
|
# File 'lib/soap/mapping/factory.rb', line 337
def initialize(allow_original_mapping = false)
super()
@allow_original_mapping = allow_original_mapping
end
|
Instance Method Details
#obj2soap(soap_class, obj, info, map) ⇒ Object
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
|
# File 'lib/soap/mapping/factory.rb', line 342
def obj2soap(soap_class, obj, info, map)
if !@allow_original_mapping and !obj.instance_variables.empty?
return nil
end
if !obj.default.nil? or
(obj.respond_to?(:default_proc) and obj.default_proc)
return nil
end
soap_obj = SOAPStruct.new(MapQName)
mark_marshalled_obj(obj, soap_obj)
obj.each do |key, value|
elem = SOAPStruct.new
elem.add("key", Mapping._obj2soap(key, map))
elem.add("value", Mapping._obj2soap(value, map))
soap_obj.add("item", elem)
end
soap_obj
end
|
#soap2obj(obj_class, node, info, map) ⇒ Object
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
|
# File 'lib/soap/mapping/factory.rb', line 362
def soap2obj(obj_class, node, info, map)
unless node.type == MapQName
return false
end
if node.class == SOAPStruct and node.key?('default')
return false
end
obj = Mapping.create_empty_object(obj_class)
mark_unmarshalled_obj(node, obj)
if node.class == SOAPStruct
node.each do |key, value|
obj[Mapping._soap2obj(value['key'], map)] =
Mapping._soap2obj(value['value'], map)
end
else
node.each do |value|
obj[Mapping._soap2obj(value['key'], map)] =
Mapping._soap2obj(value['value'], map)
end
end
return true, obj
end
|