# File lib/bundler/dsl.rb, line 425
      def to_s
        @to_s ||= begin
          trace_line, description = parse_line_number_from_description

          m = "\n[!] "
          m << description
          m << ". Bundler cannot continue.\n"

          return m unless backtrace && dsl_path && contents

          trace_line = backtrace.find { |l| l.include?(dsl_path.to_s) } || trace_line
          return m unless trace_line
          line_numer = trace_line.split(':')[1].to_i - 1
          return m unless line_numer

          lines      = contents.lines.to_a
          indent     = ' #  '
          indicator  = indent.gsub('#', '>')
          first_line = (line_numer.zero?)
          last_line  = (line_numer == (lines.count - 1))

          m << "\n"
          m << "#{indent}from #{trace_line.gsub(/:in.*$/, '')}\n"
          m << "#{indent}-------------------------------------------\n"
          m << "#{indent}#{    lines[line_numer - 1] }" unless first_line
          m << "#{indicator}#{ lines[line_numer] }"
          m << "#{indent}#{    lines[line_numer + 1] }" unless last_line
          m << "\n" unless m.end_with?("\n")
          m << "#{indent}-------------------------------------------\n"
        end
      end