lib/bundler/friendly_errors.rb in bundler-1.10.6 vs lib/bundler/friendly_errors.rb in bundler-1.11.0.pre.1

- old
+ new

@@ -3,13 +3,21 @@ require "bundler/vendored_thor" module Bundler def self.with_friendly_errors yield + rescue YAMLSyntaxError => e + Bundler.ui.error e.message + Bundler.ui.trace e.orig_exception + exit e.status_code rescue Bundler::Dsl::DSLError => e Bundler.ui.error e.message exit e.status_code + rescue Bundler::GemRequireError => e + Bundler.ui.error e.message + Bundler.ui.trace e.orig_exception, nil, true + exit e.status_code rescue Bundler::BundlerError => e Bundler.ui.error e.message, :wrap => true Bundler.ui.trace e exit e.status_code rescue Thor::AmbiguousTaskError => e @@ -41,15 +49,15 @@ request_issue_report_for(e) exit 1 end def self.request_issue_report_for(e) - Bundler.ui.info <<-EOS.gsub(/^ {6}/, '') - #{'--- ERROR REPORT TEMPLATE -------------------------------------------------------'} + Bundler.ui.info <<-EOS.gsub(/^ {6}/, "") + --- ERROR REPORT TEMPLATE ------------------------------------------------------- - What did you do? - I ran the command `#{$PROGRAM_NAME} #{ARGV.join(' ')}` + I ran the command `#{$PROGRAM_NAME} #{ARGV.join(" ")}` - What did you expect to happen? I expected Bundler to... @@ -61,28 +69,27 @@ Error details #{e.class}: #{e.message} #{e.backtrace.join("\n ")} - #{Bundler::Env.new.report(:print_gemfile => false).gsub(/\n/, "\n ").strip} - #{'--- TEMPLATE END ----------------------------------------------------------------'} + #{Bundler::Env.new.report(:print_gemfile => false, :print_gemspecs => false).gsub(/\n/, "\n ").strip} + --- TEMPLATE END ---------------------------------------------------------------- EOS Bundler.ui.error "Unfortunately, an unexpected error occurred, and Bundler cannot continue." - Bundler.ui.warn <<-EOS.gsub(/^ {6}/, '') + Bundler.ui.warn <<-EOS.gsub(/^ {6}/, "") First, try this link to see if there are any existing issue reports for this error: #{issues_url(e)} If there aren't any reports for this error yet, please create copy and paste the report template above into a new issue. Don't forget to anonymize any private data! The new issue form is located at: https://github.com/bundler/bundler/issues/new EOS end def self.issues_url(exception) - 'https://github.com/bundler/bundler/search?q=' \ + "https://github.com/bundler/bundler/search?q=" \ "#{CGI.escape(exception.message.lines.first.chomp)}&type=Issues" end - end