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.1'
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_project_graph(project_dir, format, output_file) ⇒ Object
- #generate_visualisation(deps, format, file) ⇒ Object
- #output_cyclic_dependencies(project_dir) ⇒ Object
Instance Method Details
#generate_component_graph(project_dir, component, format, output_file) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/cpp_dependency_graph.rb', line 18 def generate_component_graph(project_dir, component, format, output_file) project = Project.new(project_dir) graph = DependencyGraph.new(project) deps = graph.component_links(component) generate_visualisation(deps, format, output_file) end |
#generate_component_include_graph(project_dir, component_name, format, output_file) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/cpp_dependency_graph.rb', line 25 def generate_component_include_graph(project_dir, component_name, format, output_file) project = Project.new(project_dir) graph = IncludeDependencyGraph.new(project) deps = graph.include_links(component_name) generate_visualisation(deps, format, output_file) end |
#generate_project_graph(project_dir, format, output_file) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/cpp_dependency_graph.rb', line 11 def generate_project_graph(project_dir, format, output_file) project = Project.new(project_dir) graph = DependencyGraph.new(project) deps = graph.all_component_links generate_visualisation(deps, format, output_file) end |
#generate_visualisation(deps, format, file) ⇒ Object
40 41 42 43 44 45 46 47 |
# File 'lib/cpp_dependency_graph.rb', line 40 def generate_visualisation(deps, format, file) case format when 'dot' GraphVisualiser.new.generate_dot_file(deps, file) when 'html' GraphVisualiser.new.generate_html_file(deps, file) end end |
#output_cyclic_dependencies(project_dir) ⇒ Object
32 33 34 35 36 37 38 |
# File 'lib/cpp_dependency_graph.rb', line 32 def output_cyclic_dependencies(project_dir) project = Project.new(project_dir) graph = DependencyGraph.new(project) deps = graph.all_component_links cyclic_deps = deps.values.flatten.select { |dep| dep.cyclic? } puts JSON.pretty_generate(cyclic_deps) end |