API Reference Archeometer v0.5.0

modules

Modules

Archeometer

Archeometer is a code analysis tool to help diagnose potential problems and refactoring points, particularly in large code bases.

Functions for generating a dependency graph from applications in an Elixir project.

Defines algorithms for Design Structure Matrix (DSM) analysis.

Functions to render an Archeometer.Analysis.DSM struct into plain text.

Functions to render an Archeometer.Analysis.DSM struct into a svg image.

Functions to iterate over the DSM matrix to find the coordinates of the modules that have cyclic dependencies.

Functions for generating different TreeMaps.

Represents a Node within a Treemap.

This module provides functions to calculate coordinates and size from Archeometer.Analysis.Treemap.Node to be rendered by Archeometer.Analysis.Treemap.SVGrender.

Struct that contains starting coordinates, size and other data for an area that will be rendered by Archeometer.Analysis.Treemap.SVGRender.

Functions to render an Archeometer.Analysis.Treemap struct into a svg image.

Functions for generating a dependency graph from a list of given modules.

Module for collecting test coverage statistics, using Erlang cover module.

Credo Task to collect and save metrics from an static analysis of an Elixir project..

Module for running Credo into the current project and collect all the issues it found.

Module for collecting information about Ecto schemas and their associations between them.

Utilities for obtaining higher level information about a project, mostly through Mix and Application.

Module for analysing AST and collecting some useful information For now the schemas are hardcoded. There are

Module for collecting cross references between modules defined in the same project.

Functions for working with Graphviz graphs

Functions for working with mermaid-JS graphs

This module exposes a from/2 macro to creates queries for the Archeometer database. The recommended way to use it is to import the whole module. Let's see a simple example!

This module represents SQL subqueries. This subqueries partially mimics a query. At the moment, only a select field is allowed.

Restrict and adapt Elixir terms to a subset that is translatable to SQLite expressions. See the language reference

Utility functions for dealing with "container" AST. That is, tuples, list, keyword list and maps.

Common utilities for interacting with the database.

A query result with a nicer API to manipulate the data.

Provides functions to access the configuration of reports.

Represents a fragment, which is part of a section in a page.

Represents the definition of a Fragment.

Generates a report given a configuration and parameters.

Generates a report given a configuration and parameters.

Represents a Page of the report. Each page is associated with an application.

Represents the definition of a Page.

Defines the structure of the page definition for a single application.

Defines the page structure for a project.

Renders a page into HTML.

Represents a Section, which is part of a Page.

Represents the definition of a Section.

Utility functions for generating reports

Specify data base table information in Elixir modules. The information must be specified inside a defschema/1 macro.

This modules represents a OTP application. It holds the relevant schema data that will be used in the project analysis.

Represents an cross reference between applications.

Represents an implementation of a Behaviour into a module.

Represents a credo issue found in a module.

Represents an Elixir function. Holds the relevant schema data that will be used in the project analysis.

Represents an Elixir macro. Holds the relevant schema data that will be used in the project analysis.

Represents an Elixir module. Holds the relevant schema data that will be used in the project analysis.

Represents an cross reference between modules. It contains the relevant schema data that will be used in the project analysis.

This module provides several helpers functions to deal with Elixir ASTs.

mix-tasks

Mix Tasks

Mix Task to generate a dependency graph for the applications within an umbrella.

Mix task to gather information about the project and store it into the database. It currently gathers information about

Mix Task to collect application names, module application id, module implemented behaviours, module defined structs and store them into a Archeometer database.

Mix Task to collect and store test coverage information into a Archeometer database.

Mix Task to run Credo and save the issues it found.

Mix Task to collect information of Ecto schema modules and their relationships.

Mix Task to run code AST analysis of modules, functions and macros and store its findings into a Archeometer database.

Mix Task to analyze internal dependencies between modules and store them into a Archeometer database.

Mix Task to perform a Design Structure Matrix (DSM) analysis.

Mix Task to generate a project analysis report. The format of the report can be static html pages or Livebook notebooks.

Mix Task to generate a treemap for an application or a set of modules.

Mix Task to generate a dependency graph given some module names.