Class: WsdlMapper::Serializers::TypeDirectory

Inherits:
Object
  • Object
show all
Defined in:
lib/wsdl_mapper/serializers/type_directory.rb

Defined Under Namespace

Classes: TypeItem

Instance Method Summary (collapse)

Constructor Details

- (TypeDirectory) initialize(*base, &block)

Returns a new instance of TypeDirectory



9
10
11
12
13
14
15
16
17
18
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 9

def initialize(*base, &block)
  @base = base
  @types = {}
  @elements = {}
  @serializers = {}
  @by_type_name = Hash.new do |h, k|
    h[k] = find_and_load k
  end
  instance_exec &block if block_given?
end

Instance Method Details

- (Object) find(obj)



47
48
49
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 47

def find(obj)
  resolve obj.class.name
end

- (Object) get_element_name(name)



29
30
31
32
33
34
35
36
37
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 29

def get_element_name(name)
  element_name = @elements[normalize(name)]
  return element_name if element_name
  @base.each do |base|
    element_name = base.get_element_name(name)
    return element_name if element_name
  end
  nil # TODO: raise error?
end

- (Object) register_element(name, element_name)



20
21
22
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 20

def register_element(name, element_name)
  @elements[normalize(name)] = WsdlMapper::Dom::Name.get *element_name
end

- (Object) register_serializer(s8r_name, serializer)



43
44
45
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 43

def register_serializer(s8r_name, serializer)
  @serializers[normalize(s8r_name)] = serializer
end

- (Object) register_type(type_name, require_path, s8r_name)



24
25
26
27
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 24

def register_type(type_name, require_path, s8r_name)
  item = TypeItem.new type_name, require_path, s8r_name
  @types[normalize(type_name)] = item
end

- (Object) resolve(name)



39
40
41
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 39

def resolve(name)
  @by_type_name[normalize(name)]
end