module XporterOnDemand::ExceptionFactory
Public Class Methods
generate_exception(response_hash)
click to toggle source
# File lib/xporter_on_demand/exception_factory.rb, line 3 def self.generate_exception(response_hash) exception_type = response_hash.delete('ExceptionType') || "UnknownError" message = response_hash.delete('Message') exception_message = response_hash.delete('ExceptionMessage') inner_exception = response_hash.delete('InnerException') unless XporterOnDemand.constants.include? exception_type.to_sym XporterOnDemand.const_set exception_type, Class.new(Error) end blob = <<~ERROR #{exception_type} ========== Message: #{message} ExceptionMessage: #{exception_message} InnerException: #{inner_exception} ========== ERROR raise XporterOnDemand.const_get(exception_type).new(blob) end