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

Methods

Included Modules

TraverseSupport

Public Class methods

[Source]

    # File lib/soap/mapping/factory.rb, line 16
16:   def initialize
17:     # nothing to do
18:   end

Public Instance methods

[Source]

    # File lib/soap/mapping/factory.rb, line 20
20:   def obj2soap(soap_class, obj, info, map)
21:     raise NotImplementError.new
22:     # return soap_obj
23:   end

[Source]

    # File lib/soap/mapping/factory.rb, line 30
30:   def setiv2obj(obj, node, map)
31:     return if node.nil?
32:     if obj.is_a?(Array)
33:       setiv2ary(obj, node, map)
34:     else
35:       setiv2struct(obj, node, map)
36:     end
37:   end

[Source]

    # File lib/soap/mapping/factory.rb, line 39
39:   def setiv2soap(node, obj, map)
40:     if obj.class.class_variables.include?('@@schema_element')
41:       obj.class.class_eval('@@schema_element').each do |name, info|
42:         type, qname = info
43:         if qname
44:           elename = qname.name
45:         else
46:           elename = Mapping.name2elename(name)
47:         end
48:         node.add(elename,
49:           Mapping._obj2soap(obj.instance_variable_get('@' + name), map))
50:       end
51:     else
52:       # should we sort instance_variables?
53:       obj.instance_variables.each do |var|
54:         name = var.sub(/^@/, '')
55:         elename = Mapping.name2elename(name)
56:         node.add(elename,
57:           Mapping._obj2soap(obj.instance_variable_get(var), map))
58:       end
59:     end
60:   end

[Source]

    # File lib/soap/mapping/factory.rb, line 25
25:   def soap2obj(obj_class, node, info, map)
26:     raise NotImplementError.new
27:     # return convert_succeeded_or_not, obj
28:   end

Private Instance methods

[Source]

    # File lib/soap/mapping/factory.rb, line 64
64:   def setiv2ary(obj, node, map)
65:     node.each do |name, value|
66:       Array.instance_method(:<<).bind(obj).call(Mapping._soap2obj(value, map))
67:     end
68:   end

[Source]

    # File lib/soap/mapping/factory.rb, line 70
70:   def setiv2struct(obj, node, map)
71:     vars = {}
72:     node.each do |name, value|
73:       vars[Mapping.elename2name(name)] = Mapping._soap2obj(value, map)
74:     end
75:     Mapping.set_attributes(obj, vars)
76:   end

[Validate]