Class: WsdlMapper::Serializers::TypeDirectory
- Inherits:
-
Object
- Object
- WsdlMapper::Serializers::TypeDirectory
- Defined in:
- lib/wsdl_mapper/serializers/type_directory.rb
Defined Under Namespace
Classes: TypeItem
Instance Method Summary collapse
- #find(obj) ⇒ Object
- #get_element_name(name) ⇒ Object
-
#initialize(*base, &block) ⇒ TypeDirectory
constructor
A new instance of TypeDirectory.
- #register_element(name, element_name) ⇒ Object
- #register_serializer(s8r_name, serializer) ⇒ Object
- #register_type(type_name, require_path, s8r_name) ⇒ Object
- #resolve(name) ⇒ Object
Constructor Details
#initialize(*base, &block) ⇒ TypeDirectory
Returns a new instance of TypeDirectory.
9 10 11 12 13 14 15 16 17 18 19 |
# 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
#find(obj) ⇒ Object
48 49 50 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 48 def find(obj) resolve obj.class.name end |
#get_element_name(name) ⇒ Object
30 31 32 33 34 35 36 37 38 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 30 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 |
#register_element(name, element_name) ⇒ Object
21 22 23 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 21 def register_element(name, element_name) @elements[normalize(name)] = WsdlMapper::Dom::Name.get(*element_name) end |
#register_serializer(s8r_name, serializer) ⇒ Object
44 45 46 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 44 def register_serializer(s8r_name, serializer) @serializers[normalize(s8r_name)] = serializer end |
#register_type(type_name, require_path, s8r_name) ⇒ Object
25 26 27 28 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 25 def register_type(type_name, require_path, s8r_name) item = TypeItem.new type_name, require_path, s8r_name @types[normalize(type_name)] = item end |
#resolve(name) ⇒ Object
40 41 42 |
# File 'lib/wsdl_mapper/serializers/type_directory.rb', line 40 def resolve(name) @by_type_name[normalize(name)] end |