class Rack::Remote::ChainedError

Attributes

cause[R]

Public Class Methods

new(*attrs) click to toggle source
Calls superclass method
# File lib/rack/remote.rb, line 16
def initialize(*attrs)
  if attrs.last.is_a?(Hash) && attrs.last[:cause].is_a?(Exception)
    @cause = attrs.last.delete(:cause)
    attrs.pop if attrs.last.empty?
  end
  super *attrs
end

Public Instance Methods

set_backtrace(trace) click to toggle source
Calls superclass method
# File lib/rack/remote.rb, line 24
def set_backtrace(trace)
  trace.is_a?(Array) ? trace.map!(&:to_s) : trace = trace.to_s.split("\n")
  trace.map! { |line| "  #{line}" }
  if cause
    trace << "caused by #{cause.class.name}: #{cause.message}"
    trace += cause.backtrace.map! { |line| "  #{line}" }
  end
  super trace
end