summaryrefslogtreecommitdiff
path: root/lib/bundler/cli
diff options
context:
space:
mode:
authorZehan Zhao <cnallenzhao@gmail.com>2016-08-15 22:44:19 +0800
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2019-08-18 13:44:26 +0900
commitd80f5399adc3564d05339e6dff92ea1e95fb280a (patch)
treea8e734c158d39cf9481107b2145b55c55724c366 /lib/bundler/cli
parent98841b2b19fc2d5c6aacda26019ff07d48d971ec (diff)
[bundler/bundler] Fix open default gem error
https://github.com/bundler/bundler/commit/792d724752
Diffstat (limited to 'lib/bundler/cli')
-rw-r--r--lib/bundler/cli/open.rb14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/bundler/cli/open.rb b/lib/bundler/cli/open.rb
index 552fe6f128..008cf711e9 100644
--- a/lib/bundler/cli/open.rb
+++ b/lib/bundler/cli/open.rb
@@ -15,11 +15,15 @@ module Bundler
return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor
return unless spec = Bundler::CLI::Common.select_spec(name, :regex_match)
path = spec.full_gem_path
- Dir.chdir(path) do
- command = Shellwords.split(editor) + [path]
- Bundler.with_original_env do
- system(*command)
- end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
+ if spec.default_gem?
+ Bundler.ui.info "Unable to open #{name} because it's a default gem, so the directory it would normally be installed to does not exist."
+ else
+ Dir.chdir(path) do
+ command = Shellwords.split(editor) + [path]
+ Bundler.with_original_env do
+ system(*command)
+ end || Bundler.ui.info("Could not run '#{command.join(" ")}'")
+ end
end
end
end