class Hodor::NestedError

Hodor Exception Classes

Attributes

cause[R]

Public Class Methods

new(cause, kvp = {}) click to toggle source
# File lib/hodor.rb, line 9
def initialize(cause, kvp = {})
  @cause = cause
  @kvp = kvp
end

Public Instance Methods

orig_to_s()
Alias for: to_s
to_s() click to toggle source
# File lib/hodor.rb, line 15
def to_s
  msg = @kvp[:msg] || orig_to_s
  if @kvp.size > 1 || (@kvp.size == 1 && !@kvp.has_key?(:msg))
    msg << " Exception Context:\n"
    @kvp.each_pair { |k,v|
      next if k == :msg
      if k.nil?
        msg << "   nil => "
      elsif k.is_a?(Symbol)
        msg << "   :#{k.to_s} => "
      else
        msg <<  "   #{k} => "
      end
      if v.nil?
        msg << "nil"
      elsif v.is_a?(Symbol)
        msg << ":#{v.to_s}"
      else
        msg << v
      end
      msg << "\n"
    }
  end
  msg << "Root cause: #{@cause}"
  msg << "\nBacktrace:\n         "
  msg << "#{@cause.backtrace[0..5].join("\n         ")}"
end
Also aliased as: orig_to_s