Choreo.Dependency.Render.DOT (Choreo v0.7.0)

Copy Markdown View Source

DOT (Graphviz) rendering for Choreo.Dependency graphs.

Produces dependency-oriented visualisation:

  • Applications — 3D boxes
  • Libraries — cylinders
  • Modules — boxes
  • Interfaces — diamonds
  • Tests — note shapes

Edge styles:

  • uses — solid grey
  • imports — dashed
  • calls — dotted
  • inherits — solid bold
  • dev — dashed grey

Layout is top-to-bottom by default so dependencies point downward.

Summary

Functions

Renders a dependency graph to a DOT string.

Functions

to_dot(deps, opts \\ [])

@spec to_dot(
  Choreo.Dependency.t(),
  keyword()
) :: String.t()

Renders a dependency graph to a DOT string.

Options

Examples

iex> deps = Choreo.Dependency.new()
iex> deps = deps
...>   |> Choreo.Dependency.add_application(:api, label: "API")
...>   |> Choreo.Dependency.add_module(:auth, label: "Auth")
...>   |> Choreo.Dependency.depends_on(:api, :auth)
iex> dot = Choreo.Dependency.Render.DOT.to_dot(deps)
iex> String.contains?(dot, "digraph")
true
iex> String.contains?(dot, "API")
true
iex> String.contains?(dot, "Auth")
true