class WsdlMapper::Deserializers::TypeDirectory
Public Class Methods
new(*base, &block)
click to toggle source
# File lib/wsdl_mapper/deserializers/type_directory.rb, line 9 def initialize(*base, &block) @types = WsdlMapper::Dom::Directory.new on_nil: Errors::UnknownTypeError @base = base instance_exec(&block) if block_given? end
Public Instance Methods
each_type(&block)
click to toggle source
# File lib/wsdl_mapper/deserializers/type_directory.rb, line 26 def each_type(&block) if block_given? @base.each do |base| base.each_type(&block) end @types.each(&block) else types = @base.inject([]) { |sum, b| sum + b.each_type.to_a } types + @types.each.to_a end end
register_soap_array(type_name, klass, item_type_name)
click to toggle source
# File lib/wsdl_mapper/deserializers/type_directory.rb, line 21 def register_soap_array(type_name, klass, item_type_name) type_name = WsdlMapper::Dom::Name.get(*type_name) @types[type_name] = SoapArrayMapping.new klass, type: item_type_name end
register_type(type_name, klass, simple: false, &block)
click to toggle source
# File lib/wsdl_mapper/deserializers/type_directory.rb, line 16 def register_type(type_name, klass, simple: false, &block) type_name = WsdlMapper::Dom::Name.get(*type_name) @types[type_name] = ClassMapping.new klass, simple: simple, &block end