module CppDependencyGraph

Generates dependency graphs of a project in various output forms

Constants

VERSION

Public Instance Methods

generate_component_graph(project_dir, component, format, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 22
def generate_component_graph(project_dir, component, format, output_file)
  project = Project.new(project_dir)
  graph = ComponentDependencyGraph.new(project)
  deps = graph.links(component)
  generate_visualisation(deps, format, output_file)
end
generate_component_include_graph(project_dir, component_name, format, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 36
def generate_component_include_graph(project_dir, component_name, format, output_file)
  project = Project.new(project_dir)
  graph = IncludeComponentDependencyGraph.new(project)
  deps = graph.links(component_name)
  generate_visualisation(deps, format, output_file)
end
generate_cyclic_dependencies(project_dir, format, file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 57
def generate_cyclic_dependencies(project_dir, format, file)
  project = Project.new(project_dir)
  graph = ComponentDependencyGraph.new(project)
  deps = graph.all_cyclic_links
  generate_visualisation(deps, format, file)
end
generate_enclosure_diagram(project_dir, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 50
def generate_enclosure_diagram(project_dir, output_file)
  dir_tree = DirTree.new(project_dir)
  tree = dir_tree.tree
  puts tree
  CirclePackingVisualiser.new.generate(tree, output_file)
end
generate_file_include_graph(project_dir, file_name, format, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 29
def generate_file_include_graph(project_dir, file_name, format, output_file)
  project = Project.new(project_dir)
  graph = IncludeFileDependencyGraph.new(project)
  deps = graph.links(file_name)
  generate_visualisation(deps, format, output_file)
end
generate_project_graph(project_dir, format, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 15
def generate_project_graph(project_dir, format, output_file)
  project = Project.new(project_dir)
  graph = ComponentDependencyGraph.new(project)
  deps = graph.all_links
  generate_visualisation(deps, format, output_file)
end
generate_project_include_graph(project_dir, format, output_file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 43
def generate_project_include_graph(project_dir, format, output_file)
  project = Project.new(project_dir)
  graph = IncludeComponentDependencyGraph.new(project)
  deps = graph.all_links
  generate_visualisation(deps, format, output_file)
end
generate_visualisation(deps, format, file) click to toggle source
# File lib/cpp_dependency_graph.rb, line 64
def generate_visualisation(deps, format, file)
  case format
  when 'svg'
    GraphToSvgVisualiser.new.generate(deps, file)
  when 'html'
    GraphToHtmlVisualiser.new.generate(deps, file)
  when 'json'
    File.write(file, JSON.pretty_generate(deps))
  end
end