class NoMethodError

Public Instance Methods

dead_end_original_to_s()
Alias for: to_s
to_s() click to toggle source
Calls superclass method
# File lib/dead_end/auto.rb, line 69
def to_s
  return super if DeadEnd::IsProduction.call

  file, line, _ = backtrace[0].split(":")
  return super if !File.exist?(file)

  index = line.to_i - 1
  source = File.read(file)
  code_lines = DeadEnd::CodeLine.parse(source)

  block = DeadEnd::CodeBlock.new(lines: code_lines[index])
  lines = DeadEnd::CaptureCodeContext.new(
    blocks: block,
    code_lines: code_lines
  ).call

  message = super.dup
  message << $/
  message << $/

  message << DeadEnd::DisplayCodeWithLineNumbers.new(
    lines: lines,
    highlight_lines: block.lines,
    terminal: self.class.to_tty?
  ).call

  message << $/
  message
rescue => e
  puts "DeadEnd Internal error: #{e.dead_end_original_to_s}"
  puts "DeadEnd Internal backtrace:"
  puts backtrace.map {|l| "    " + l }.join($/)
  super
end
Also aliased as: dead_end_original_to_s