Skip to content

Commit

Permalink
[rubygems/rubygems] Improve command suggestion when gems are missing
Browse files Browse the repository at this point in the history
Previous attempt to use a full path when the running version is
different than the one that would be activated by default are different
was not correct.

This is because if this error happens in a `bundle exec` context, the
`Gem.loaded_specs` is cleared because we're in an exec'd process, so
will be always using a full path in these cases.

This alternative approach should do what I was expecting.

rubygems/rubygems@e0bb8bf51b
  • Loading branch information
deivid-rodriguez authored and hsbt committed Dec 16, 2023
1 parent c8e9cd2 commit 299eb8d
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion lib/bundler/setup.rb
Expand Up @@ -12,7 +12,9 @@
Bundler.ui.error e.message
Bundler.ui.warn e.backtrace.join("\n") if ENV["DEBUG"]
if e.is_a?(Bundler::GemNotFound)
suggested_bundle = Gem.loaded_specs["bundler"] ? "bundle" : Bundler::SharedHelpers.bundle_bin_path
default_bundle = Gem.bin_path("bundler", "bundle")
current_bundle = Bundler::SharedHelpers.bundle_bin_path
suggested_bundle = default_bundle == current_bundle ? "bundle" : current_bundle
suggested_cmd = "#{suggested_bundle} install"
original_gemfile = Bundler.original_env["BUNDLE_GEMFILE"]
suggested_cmd += " --gemfile #{original_gemfile}" if original_gemfile
Expand Down

0 comments on commit 299eb8d

Please sign in to comment.