Class SOAP::Mapping::SOAPException
In: lib/soap/mapping/registry.rb
Parent: Object

Inner class to pass an exception.

Methods

new   to_e  

Included Modules

Marshallable

Attributes

cause  [R] 
excn_type_name  [R] 

Public Class methods

[Source]

    # File lib/soap/mapping/registry.rb, line 38
38:   def initialize(e)
39:     @excn_type_name = Mapping.name2elename(e.class.to_s)
40:     @cause = e
41:   end

Public Instance methods

[Source]

    # File lib/soap/mapping/registry.rb, line 43
43:   def to_e
44:     if @cause.is_a?(::Exception)
45:       @cause.extend(::SOAP::Mapping::MappedException)
46:       return @cause
47:     elsif @cause.respond_to?(:message) and @cause.respond_to?(:backtrace)
48:       e = RuntimeError.new(@cause.message)
49:       e.set_backtrace(@cause.backtrace)
50:       return e
51:     end
52:     klass = Mapping.class_from_name(Mapping.elename2name(@excn_type_name.to_s))
53:     if klass.nil? or not klass <= ::Exception
54:       return RuntimeError.new(@cause.inspect)
55:     end
56:     obj = klass.new(@cause.message)
57:     obj.extend(::SOAP::Mapping::MappedException)
58:     obj
59:   end

[Validate]