Sha256: c9a4eb4873fc21cab1df2123fe0d27090e693e463af249f2c319a94d1d4d0ea4
Contents?: true
Size: 1.24 KB
Versions: 12
Compression:
Stored size: 1.24 KB
Contents
# frozen_string_literal: true module Nanoc::CLI # @api private class StackTraceWriter def initialize(stream, forwards:) @stream = stream @forwards = forwards end def write(error, verbose:) if @forwards write_forwards(error, verbose: verbose) else write_backwards(error, verbose: verbose) end end private def write_backwards(error, verbose:) count = verbose ? -1 : 10 error.backtrace[0...count].each_with_index do |item, index| @stream.puts " #{index}. #{item}" end if !verbose && error.backtrace.size > count @stream.puts " ... #{error.backtrace.size - count} lines omitted (see crash.log for details)" end end def write_forwards(error, verbose:) count = 10 backtrace = verbose ? error.backtrace : error.backtrace.take(count) if !verbose && error.backtrace.size > count @stream.puts " ... #{error.backtrace.size - count} lines omitted (see crash.log for details)" end backtrace.each_with_index.to_a.reverse.each do |(item, index)| if index.zero? @stream.puts " #{item}" else @stream.puts " #{index}. from #{item}" end end end end end
Version data entries
12 entries across 12 versions & 1 rubygems