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
# File lib/soap/mapping/encodedregistry.rb, line 108 108: def clear 109: @obj2soap.clear 110: @soap2obj.clear 111: end
# 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
# 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
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
# 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
# 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.
Generated with the Darkfish Rdoc Generator 1.1.6.