In Files

  • soap/mapping/registry.rb

Parent

Methods

Included Modules

Class/Module Index [+]

Quicksearch

SOAP::Mapping::SOAPException

Inner class to pass an exception.

Attributes

cause[R]
excn_type_name[R]

Public Class Methods

new(e) click to toggle source
 
               # File soap/mapping/registry.rb, line 38
def initialize(e)
  @excn_type_name = Mapping.name2elename(e.class.to_s)
  @cause = e
end
            

Public Instance Methods

to_e() click to toggle source
 
               # File soap/mapping/registry.rb, line 43
def to_e
  if @cause.is_a?(::Exception)
    @cause.extend(::SOAP::Mapping::MappedException)
    return @cause
  elsif @cause.respond_to?(:message) and @cause.respond_to?(:backtrace)
    e = RuntimeError.new(@cause.message)
    e.set_backtrace(@cause.backtrace)
    return e
  end
  klass = Mapping.class_from_name(Mapping.elename2name(@excn_type_name.to_s))
  if klass.nil? or not klass <= ::Exception
    return RuntimeError.new(@cause.inspect)
  end
  obj = klass.new(@cause.message)
  obj.extend(::SOAP::Mapping::MappedException)
  obj
end