diff options
-rw-r--r-- | lib/bundler/cli.rb | 12 | ||||
-rw-r--r-- | lib/bundler/cli/viz.rb | 3 | ||||
-rw-r--r-- | spec/commands/viz_spec.rb | 34 |
3 files changed, 43 insertions, 6 deletions
diff --git a/lib/bundler/cli.rb b/lib/bundler/cli.rb index 0bd82fd1..e652bfd6 100644 --- a/lib/bundler/cli.rb +++ b/lib/bundler/cli.rb @@ -359,14 +359,14 @@ module Bundler Viz requires the ruby-graphviz gem (and its dependencies). The associated gems must also be installed via 'bundle install'. D - method_option :file, :type => :string, :default => "gem_graph", :aliases => "-f", :banner => "The name to use for the generated file. see format option" - method_option :format, :type => :string, :default => "png", :aliases => "-F", :banner => "This is output format option. Supported format is png, jpg, svg, dot ..." - method_option :requirements, :type => :boolean, :default => false, :aliases => "-r", :banner => "Set to show the version of each required dependency." - method_option :version, :type => :boolean, :default => false, :aliases => "-v", :banner => "Set to show each gem version." - method_option :without, :type => :array, :default => [], :banner => "Exclude gems that are part of the specified named group." + method_option :file, :type => :string, :default => "gem_graph", :aliases => "-f", :desc => "The name to use for the generated file. see format option" + method_option :format, :type => :string, :default => "png", :aliases => "-F", :desc => "This is output format option. Supported format is png, jpg, svg, dot ..." + method_option :requirements, :type => :boolean, :default => false, :aliases => "-R", :desc => "Set to show the version of each required dependency." + method_option :version, :type => :boolean, :default => false, :aliases => "-v", :desc => "Set to show each gem version." + method_option :without, :type => :array, :default => [], :aliases => "-W", :banner => "GROUP[ GROUP...]", :desc => "Exclude gems that are part of the specified named group." def viz require "bundler/cli/viz" - Viz.new(options).run + Viz.new(options.dup).run end desc "gem GEM [OPTIONS]", "Creates a skeleton for creating a rubygem" diff --git a/lib/bundler/cli/viz.rb b/lib/bundler/cli/viz.rb index 7ccd306d..75e6afff 100644 --- a/lib/bundler/cli/viz.rb +++ b/lib/bundler/cli/viz.rb @@ -8,7 +8,10 @@ module Bundler def run require "graphviz" + + options[:without] = options[:without].join(":").tr(" ", ":").split(":") output_file = File.expand_path(options[:file]) + graph = Graph.new(Bundler.load, output_file, options[:version], options[:requirements], options[:format], options[:without]) graph.viz rescue LoadError => e diff --git a/spec/commands/viz_spec.rb b/spec/commands/viz_spec.rb index c6805688..20dc9175 100644 --- a/spec/commands/viz_spec.rb +++ b/spec/commands/viz_spec.rb @@ -32,4 +32,38 @@ describe "bundle viz", :ruby => "1.9.3", :if => Bundler.which("dot") do bundle "viz", :env => { "RUBYOPT" => "-I #{graphviz_lib}" } expect(out).to include("gem_graph.png") end + + context "--without option" do + it "one group" do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "activesupport" + + group :rails do + gem "rails" + end + G + + bundle "viz --without=rails", :env => { "RUBYOPT" => "-I #{graphviz_lib}" } + expect(out).to include("gem_graph.png") + end + + it "two groups" do + install_gemfile <<-G + source "file://#{gem_repo1}" + gem "activesupport" + + group :rack do + gem "rack" + end + + group :rails do + gem "rails" + end + G + + bundle "viz --without=rails:rack", :env => { "RUBYOPT" => "-I #{graphviz_lib}" } + expect(out).to include("gem_graph.png") + end + end end |