class ElasticAPM::Error::Exception

@api private

def self.from_exception(exception, **attrs)

def self.from_exception(exception, **attrs)
  new({
    message: exception.message.to_s,
    type: exception.class.to_s,
    module: format_module(exception),
    cause: exception.cause && Exception.from_exception(exception.cause)
  }.merge(attrs))
end

def format_module(exception)

def format_module(exception)
  exception.class.to_s.split(MOD_SPLIT)[0...-1].join(MOD_SPLIT)
end

def initialize(attrs = nil)

def initialize(attrs = nil)
  return unless attrs
  attrs.each do |key, val|
    send(:"#{key}=", val)
  end
end

def inspect

def inspect
  '<ElasticAPM::Error::Exception' \
    " type:#{type}" \
    " message:#{message}" \
    '>'
end