class DependencyGraph

Attributes

dependency_graph[R]
filename[R]
node_list[R]
node_list_str[R]

Public Class Methods

new(output_filename) click to toggle source
# File scripts/dependency_functions/dependency_graph.rb, line 34
def initialize(output_filename)
    if($dep_graph_support == 0)
        print_abort("No support for ruby-graphviz, please install with gem install ruby-graphviz")
    end
    @dependency_graph = GraphViz.new( :G, :type => :digraph )
    @node_list = []
    @node_list_str = []
    @filename = output_filename
end

Public Instance Methods

add_dep(base_node, dependency) click to toggle source
# File scripts/dependency_functions/dependency_graph.rb, line 58
def add_dep(base_node, dependency)
    node = get_node_by_name(base_node)
    dep = get_node_by_name(dependency)

    dependency_graph.add_edges(node, dep)
end
add_node(name) click to toggle source
# File scripts/dependency_functions/dependency_graph.rb, line 53
def add_node(name)
    @node_list.push(dependency_graph.add_nodes(name))
    @node_list_str.push(name)
end
draw() click to toggle source
# File scripts/dependency_functions/dependency_graph.rb, line 65
def draw()
    dependency_graph.output( :png => "#{filename}.png")
end
get_node_by_name(name) click to toggle source
# File scripts/dependency_functions/dependency_graph.rb, line 44
def get_node_by_name(name)
    result = node_list_str.index(name)
    if result == nil
        return print_abort("ERROR: No node found for package #{name}!")
    else
        return node_list[result]
    end
end