Method: ChefApply::UI::ErrorPrinter#add_formatted_backtrace

Defined in:
lib/chef_apply/ui/error_printer.rb

#add_formatted_backtrace(out) ⇒ Object



227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
# File 'lib/chef_apply/ui/error_printer.rb', line 227

def add_formatted_backtrace(out)
  _format_single(out, exception)
  current_backtrace = exception.backtrace
  cause = exception.cause
  until cause.nil?
    cause_trace = _unique_trace(cause.backtrace.to_a, current_backtrace)
    out.print "Caused by: "
    _format_single(out, cause, cause_trace)
    backtrace_length = cause.backtrace.length
    if backtrace_length > cause_trace.length
      out.print "\t... #{backtrace_length - cause_trace.length} more"
    end
    out.print "\n"
    current_backtrace = cause.backtrace
    cause = cause.cause
  end
end