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.1.2'
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_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
21 22 23 24 25 26 |
# File 'lib/cpp_dependency_graph.rb', line 21 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
28 29 30 31 32 33 |
# File 'lib/cpp_dependency_graph.rb', line 28 def generate_component_include_graph(project_dir, component_name, format, output_file) project = Project.new(project_dir) graph = IncludeDependencyGraph.new(project) deps = graph.links(component_name) generate_visualisation(deps, format, output_file) end |
#generate_cyclic_dependencies(project_dir, format, file) ⇒ Object
49 50 51 52 53 54 |
# File 'lib/cpp_dependency_graph.rb', line 49 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
42 43 44 45 46 47 |
# File 'lib/cpp_dependency_graph.rb', line 42 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_project_graph(project_dir, format, output_file) ⇒ Object
14 15 16 17 18 19 |
# File 'lib/cpp_dependency_graph.rb', line 14 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
35 36 37 38 39 40 |
# File 'lib/cpp_dependency_graph.rb', line 35 def generate_project_include_graph(project_dir, format, output_file) project = Project.new(project_dir) graph = IncludeDependencyGraph.new(project) deps = graph.all_links generate_visualisation(deps, format, output_file) end |
#generate_visualisation(deps, format, file) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/cpp_dependency_graph.rb', line 56 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 |