зеркало из https://github.com/github/ruby.git
[bundler/bundler] Fix open default gem error
https://github.com/bundler/bundler/commit/792d724752
This commit is contained in:
Родитель
98841b2b19
Коммит
d80f5399ad
|
@ -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
|
||||
|
|
|
@ -91,4 +91,17 @@ RSpec.describe "bundle open" do
|
|||
expect(out).not_to include("BUNDLE_GEMFILE=")
|
||||
end
|
||||
end
|
||||
|
||||
context "when opening a default gem" do
|
||||
before do
|
||||
install_gemfile <<-G
|
||||
gem "json"
|
||||
G
|
||||
end
|
||||
|
||||
it "throws proper error when trying to open default gem" do
|
||||
bundle "open json", :env => { "EDITOR" => "echo editor", "VISUAL" => "echo visual", "BUNDLER_EDITOR" => "echo bundler_editor" }
|
||||
expect(out).to include("Unable to open json because it's a default gem, so the directory it would normally be installed to does not exist.")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче