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