diff options
author | The Bundler Bot <bot@bundler.io> | 2017-01-04 01:25:38 +0000 |
---|---|---|
committer | Samuel Giddins <segiddins@segiddins.me> | 2017-01-11 14:28:41 -0600 |
commit | 91006767d4a2fd5cc29e79086004f28e3f45013f (patch) | |
tree | 33343d4f7105408a3a22caa61369bef6c6f1a5bb | |
parent | e9dca8bfecc484bd9e786c239a08ebd0d611e573 (diff) | |
download | bundler-91006767d4a2fd5cc29e79086004f28e3f45013f.tar.gz |
Auto merge of #5302 - bundler:seg-open-exit, r=indirect
[CLI::Open] Support exiting when selecting gem
Closes https://github.com/bundler/bundler/issues/5301
(cherry picked from commit 84494276118b76840009bf8d37d98692762609e6)
-rw-r--r-- | lib/bundler/cli/open.rb | 3 | ||||
-rw-r--r-- | spec/commands/open_spec.rb | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/bundler/cli/open.rb b/lib/bundler/cli/open.rb index 0bbfa63d34..9a21f6811c 100644 --- a/lib/bundler/cli/open.rb +++ b/lib/bundler/cli/open.rb @@ -13,7 +13,8 @@ module Bundler def run editor = [ENV["BUNDLER_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find {|e| !e.nil? && !e.empty? } return Bundler.ui.info("To open a bundled gem, set $EDITOR or $BUNDLER_EDITOR") unless editor - path = Bundler::CLI::Common.select_spec(name, :regex_match).full_gem_path + 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_clean_env do diff --git a/spec/commands/open_spec.rb b/spec/commands/open_spec.rb index 5507398382..3bf2983f36 100644 --- a/spec/commands/open_spec.rb +++ b/spec/commands/open_spec.rb @@ -67,6 +67,13 @@ describe "bundle open" do expect(out).to match(/bundler_editor #{default_bundle_path('gems', 'activerecord-2.3.2')}\z/) end + it "allows selecting exit from many match gems" do + env = { "EDITOR" => "echo editor", "VISUAL" => "echo visual", "BUNDLER_EDITOR" => "echo bundler_editor" } + bundle! "open active", :env => env do |input, _, _| + input.puts "0" + end + end + it "performs an automatic bundle install" do gemfile <<-G source "file://#{gem_repo1}" |