123456789_123456789_123456789_123456789_123456789_

Class: Bundler::CLI::Viz

Relationships & Source Files
Inherits: Object
Defined in: lib/bundler/cli/viz.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(options) ⇒ Viz

[ GitHub ]

  
# File 'lib/bundler/cli/viz.rb', line 6

def initialize(options)
  @options = options
end

Instance Attribute Details

#gem_name (readonly)

[ GitHub ]

  
# File 'lib/bundler/cli/viz.rb', line 5

attr_reader :options, :gem_name

#options (readonly)

[ GitHub ]

  
# File 'lib/bundler/cli/viz.rb', line 5

attr_reader :options, :gem_name

Instance Method Details

#run

[ GitHub ]

  
# File 'lib/bundler/cli/viz.rb', line 10

def run
  # make sure we get the right `graphviz`. There is also a `graphviz`
  # gem we're not built to support
  gem "ruby-graphviz"
  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
  Bundler.ui.error e.inspect
  Bundler.ui.warn "Make sure you have the graphviz ruby gem. You can install it with:"
  Bundler.ui.warn "`gem install ruby-graphviz`"
rescue StandardError => e
  raise unless e.message.to_s.include?("GraphViz not installed or dot not in PATH")
  Bundler.ui.error e.message
  Bundler.ui.warn "Please install GraphViz. On a Mac with Homebrew, you can run `brew install graphviz`."
end