Module: Bundler::FriendlyErrors
Relationships & Source Files | |
Defined in: | lib/bundler/friendly_errors.rb |
Class Attribute Summary
- .disabled? ⇒ Boolean readonly mod_func
Class Method Summary
- .disable! mod_func
- .enable! mod_func
- .exception_message(error) mod_func
- .exit_status(error) mod_func
- .issues_url(exception) mod_func
- .log_error(error) mod_func
- .new_issue_url mod_func
- .request_issue_report_for(e) mod_func
- .serialized_exception_for(e) mod_func
Class Attribute Details
.disabled? ⇒ Boolean
(readonly, mod_func)
[ GitHub ]
# File 'lib/bundler/friendly_errors.rb', line 13
def disabled? @disabled end
Class Method Details
.disable! (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 17
def disable! @disabled = true end
.enable! (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 9
def enable! @disabled = false end
.exception_message(error) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 87
def (error) = serialized_exception_for(error) cause = error.cause return unless cause + serialized_exception_for(cause) end
.exit_status(error) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 54
def exit_status(error) case error when BundlerError then error.status_code when Thor::Error then 15 when SystemExit then error.status else 1 end end
.issues_url(exception) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 102
def issues_url(exception) = exception. .lines.first.tr(":", " ").chomp = .split("-").first if exception.is_a?(Errno) require "cgi" "https://github.com/rubygems/rubygems/search?q=" \ "#{CGI.escape( )}&type=Issues" end
.log_error(error) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 21
def log_error(error) case error when YamlSyntaxError Bundler.ui.error error. Bundler.ui.trace error.orig_exception when Dsl::DSLError, GemspecError Bundler.ui.error error. when GemRequireError Bundler.ui.error error. Bundler.ui.trace error.orig_exception when BundlerError if Bundler.ui.debug? Bundler.ui.trace error else Bundler.ui.error error., wrap: true end when Thor::Error Bundler.ui.error error. when Interrupt Bundler.ui.error "\nQuitting..." Bundler.ui.trace error when Gem::InvalidSpecificationException Bundler.ui.error error., wrap: true when SystemExit when *[defined?(Java::JavaLang::OutOfMemoryError) && Java::JavaLang::OutOfMemoryError].compact Bundler.ui.error "\nYour JVM has run out of memory, and Bundler cannot continue. " \ "You can decrease the amount of memory Bundler needs by removing gems from your Gemfile, " \ "especially large gems. (Gems can be as large as hundreds of megabytes, and Bundler has to read those files!). " \ "Alternatively, you can increase the amount of memory the JVM is able to use by running Bundler with jruby -J-Xmx1024m -S bundle (JRuby defaults to 500MB)." else request_issue_report_for(error) end end
.new_issue_url (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 110
def new_issue_url "https://github.com/rubygems/rubygems/issues/new?labels=Bundler&template=bundler-related-issue.md" end
.request_issue_report_for(e) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 63
def request_issue_report_for(e) Bundler.ui.error <<~EOS, nil, nil --- ERROR REPORT TEMPLATE ------------------------------------------------------- ``` #{ (e)} ``` #{Bundler::Env.report} --- TEMPLATE END ---------------------------------------------------------------- EOS Bundler.ui.error "Unfortunately, an unexpected error occurred, and Bundler cannot continue." Bundler.ui.error <<~EOS, nil, :yellow 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 fill in the new issue form located at #{new_issue_url}, and copy and paste the report template above in there. EOS end
.serialized_exception_for(e) (mod_func)
[ GitHub ]# File 'lib/bundler/friendly_errors.rb', line 95
def serialized_exception_for(e) <<~EOS #{e.class}: #{e.} #{e.backtrace&.join("\n ")&.chomp} EOS end