# File lib/bundler/graph.rb, line 110
      def run
        @groups.each do |group|
          g.add_node(
            group,
            {:style     => 'filled',
             :fillcolor => '#B9B9D5',
             :shape     => "box3d",
             :fontsize  => 16}.merge(@node_options[group])
          )
        end

        @relations.each do |parent, children|
          children.each do |child|
            if @groups.include?(parent)
              g.add_node(child, {:style => 'filled', :fillcolor => '#B9B9D5'}.merge(@node_options[child]))
              g.add_edge(parent, child, {:constraint => false}.merge(@edge_options["#{parent}_#{child}"]))
            else
              g.add_node(child, @node_options[child])
              g.add_edge(parent, child, @edge_options["#{parent}_#{child}"])
            end
          end
        end

        if @output_format.to_s == "debug"
          $stdout.puts g.output :none => String
          Bundler.ui.info "debugging bundle viz..."
        else
          begin
            g.output @output_format.to_sym => "#{@output_file}.#{@output_format}"
            Bundler.ui.info "#{@output_file}.#{@output_format}"
          rescue ArgumentError => e
            $stderr.puts "Unsupported output format. See Ruby-Graphviz/lib/graphviz/constants.rb"
            raise e
          end
        end
      end