Files

Class Index [+]

Quicksearch

SOAP::Mapping::EncodedRegistry::Map

Public Class Methods

new(registry) click to toggle source
    # File lib/soap/mapping/encodedregistry.rb, line 54
54:     def initialize(registry)
55:       @obj2soap = {}
56:       @soap2obj = {}
57:       @registry = registry
58:     end

Public Instance Methods

add(obj_class, soap_class, factory, info) click to toggle source

Give priority to latter entry.

     # File lib/soap/mapping/encodedregistry.rb, line 102
102:     def add(obj_class, soap_class, factory, info)
103:       info ||= {}
104:       (@obj2soap[obj_class] ||= []).unshift([soap_class, factory, info])
105:       (@soap2obj[soap_class] ||= []).unshift([obj_class, factory, info])
106:     end
clear() click to toggle source
     # File lib/soap/mapping/encodedregistry.rb, line 108
108:     def clear
109:       @obj2soap.clear
110:       @soap2obj.clear
111:     end
find_mapped_obj_class(target_soap_class) click to toggle source
     # File lib/soap/mapping/encodedregistry.rb, line 118
118:     def find_mapped_obj_class(target_soap_class)
119:       map = @soap2obj[target_soap_class]
120:       map.empty? ? nil : map[0][0]
121:     end
find_mapped_soap_class(target_obj_class) click to toggle source
     # File lib/soap/mapping/encodedregistry.rb, line 113
113:     def find_mapped_soap_class(target_obj_class)
114:       map = @obj2soap[target_obj_class]
115:       map.empty? ? nil : map[0][1]
116:     end
init(init_map = []) click to toggle source

Give priority to former entry.

    # File lib/soap/mapping/encodedregistry.rb, line 94
94:     def init(init_map = [])
95:       clear
96:       init_map.reverse_each do |obj_class, soap_class, factory, info|
97:         add(obj_class, soap_class, factory, info)
98:       end
99:     end
obj2soap(obj) click to toggle source
    # File lib/soap/mapping/encodedregistry.rb, line 60
60:     def obj2soap(obj)
61:       klass = obj.class
62:       if map = @obj2soap[klass]
63:         map.each do |soap_class, factory, info|
64:           ret = factory.obj2soap(soap_class, obj, info, @registry)
65:           return ret if ret
66:         end
67:       end
68:       klass.ancestors.each do |baseclass|
69:         next if baseclass == klass
70:         if map = @obj2soap[baseclass]
71:           map.each do |soap_class, factory, info|
72:             if info[:derived_class]
73:               ret = factory.obj2soap(soap_class, obj, info, @registry)
74:               return ret if ret
75:             end
76:           end
77:         end
78:       end
79:       nil
80:     end
soap2obj(node, klass = nil) click to toggle source
    # File lib/soap/mapping/encodedregistry.rb, line 82
82:     def soap2obj(node, klass = nil)
83:       if map = @soap2obj[node.class]
84:         map.each do |obj_class, factory, info|
85:           next if klass and obj_class != klass
86:           conv, obj = factory.soap2obj(obj_class, node, info, @registry)
87:           return true, obj if conv
88:         end
89:       end
90:       return false, nil
91:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.