Module: CppDependencyGraph
- Defined in:
- lib/cpp_dependency_graph.rb,
lib/cpp_dependency_graph/version.rb
Overview
Generates dependency graphs of a project in various output forms
Constant Summary collapse
- VERSION =
'0.4.0'
Instance Method Summary collapse
- #generate_component_graph(project_dir, component, format, output_file) ⇒ Object
- #generate_component_include_graph(project_dir, component_name, format, output_file) ⇒ Object
- #generate_cyclic_dependencies(project_dir, format, file) ⇒ Object
- #generate_enclosure_diagram(project_dir, output_file) ⇒ Object
- #generate_file_include_graph(project_dir, file_name, format, output_file) ⇒ Object
- #generate_project_graph(project_dir, format, output_file) ⇒ Object
- #generate_project_include_graph(project_dir, format, output_file) ⇒ Object
- #generate_visualisation(deps, format, file) ⇒ Object
Instance Method Details
#generate_component_graph(project_dir, component, format, output_file) ⇒ Object
22 23 24 25 26 27 |
# 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) ⇒ Object
36 37 38 39 40 41 |
# 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) ⇒ Object
57 58 59 60 61 62 |
# 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) ⇒ Object
50 51 52 53 54 55 |
# 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) ⇒ Object
29 30 31 32 33 34 |
# 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) ⇒ Object
15 16 17 18 19 20 |
# 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) ⇒ Object
43 44 45 46 47 48 |
# 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) ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cpp_dependency_graph.rb', line 64 def generate_visualisation(deps, format, file) case format when 'dot' GraphToDotVisualiser.new.generate(deps, file) when 'html' GraphToHtmlVisualiser.new.generate(deps, file) when 'json' File.write(file, JSON.pretty_generate(deps)) end end |