summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColby Swandale <colby@taplaboratories.com>2017-11-19 15:14:26 +1100
committerColby Swandale <colby@taplaboratories.com>2017-11-19 15:14:26 +1100
commit666bb1d7520a2ceabd84a04d769eb572a410ff59 (patch)
tree2fc7ed1e27a8e042559fac881ea1ace5e365227b
parent914a4a8b8d0cf1a79dbc7b334fbb5c2db1ecdc16 (diff)
downloadbundler-666bb1d7520a2ceabd84a04d769eb572a410ff59.tar.gz
add `--paths` option to `bundle list` command.
This option mimics the `--paths` options in `bundle show` which is being removed in bundler 2. Example Usage: $ bundle list --paths /Users/c/Desktop/Projects/testapp/.bundle/ruby/2.4.0/gems/actioncable-5.1.4 /Users/c/Desktop/Projects/testapp/.bundle/ruby/2.4.0/gems/actionmailer-5.1.4 /Users/c/Desktop/Projects/testapp/.bundle/ruby/2.4.0/gems/actionpack-5.1.4 /Users/c/Desktop/Projects/testapp/.bundle/ruby/2.4.0/gems/actionview-5.1.4
-rw-r--r--lib/bundler/cli.rb1
-rw-r--r--lib/bundler/cli/list.rb1
-rw-r--r--man/bundle-list.ronn2
-rw-r--r--spec/commands/list_spec.rb15
4 files changed, 19 insertions, 0 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb
index 7744a6f801..98c02fc791 100644
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
@@ -285,6 +285,7 @@ module Bundler
if Bundler.feature_flag.list_command?
desc "list", "List all gems in the bundle"
method_option "name-only", :type => :boolean, :banner => "print only the gem names"
+ method_option "paths", :type => :boolean, :banner => "print the path to each gem in the bundle"
def list
require "bundler/cli/list"
List.new(options).run
diff --git a/lib/bundler/cli/list.rb b/lib/bundler/cli/list.rb
index b5e7c1e650..73f69a9eaf 100644
--- a/lib/bundler/cli/list.rb
+++ b/lib/bundler/cli/list.rb
@@ -9,6 +9,7 @@ module Bundler
def run
specs = Bundler.load.specs.reject {|s| s.name == "bundler" }.sort_by(&:name)
return specs.each {|s| Bundler.ui.info s.name } if @options["name-only"]
+ return specs.each {|s| Bundler.ui.info s.full_gem_path } if @options["paths"]
return Bundler.ui.info "No gems in the Gemfile" if specs.empty?
Bundler.ui.info "Gems included by the bundle:"
diff --git a/man/bundle-list.ronn b/man/bundle-list.ronn
index 79fcfff701..b7a9d3f786 100644
--- a/man/bundle-list.ronn
+++ b/man/bundle-list.ronn
@@ -13,3 +13,5 @@ Prints a list of all the gems in the bundle including their version.
* `--name-only`:
Print only the name of each gem.
+* `--paths`:
+ Print the path to each gem in the bundle.
diff --git a/spec/commands/list_spec.rb b/spec/commands/list_spec.rb
index 0ea70f015c..7fb25963ec 100644
--- a/spec/commands/list_spec.rb
+++ b/spec/commands/list_spec.rb
@@ -15,6 +15,21 @@ RSpec.describe "bundle list", :bundler => "2" do
end
end
+ context "with paths option" do
+ before do
+ install_gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem "rack"
+ gem "rails"
+ G
+ end
+ it "prints the path of each gem in the bundle" do
+ bundle "list --paths"
+ expect(out).to match(%r{.*\/rails\-2\.3\.2})
+ expect(out).to match(%r{.*\/rack\-1\.0\.0})
+ end
+ end
+
context "when no gems are in the gemfile" do
before do
install_gemfile <<-G