diff options
author | Colby Swandale <colby@taplaboratories.com> | 2017-11-19 15:14:26 +1100 |
---|---|---|
committer | Colby Swandale <colby@taplaboratories.com> | 2017-11-19 15:14:26 +1100 |
commit | 666bb1d7520a2ceabd84a04d769eb572a410ff59 (patch) | |
tree | 2fc7ed1e27a8e042559fac881ea1ace5e365227b | |
parent | 914a4a8b8d0cf1a79dbc7b334fbb5c2db1ecdc16 (diff) | |
download | bundler-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.rb | 1 | ||||
-rw-r--r-- | lib/bundler/cli/list.rb | 1 | ||||
-rw-r--r-- | man/bundle-list.ronn | 2 | ||||
-rw-r--r-- | spec/commands/list_spec.rb | 15 |
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 |