Dogma v0.0.6

Modules summary

Dogma

Welcome to Dogma

Dogma.Documentation.FormattersList

Generates a documentation file for formatters

Dogma.Documentation.RuleList

Generate documentation file detailing all rules

Dogma.Error

This module provides the struct we use to represent errors found in a file by Rules. These %Errors are to be passed to and reported by a formatter

Dogma.Formatter

Handles formatters. In short, decides what we should print to STDOUT

Dogma.Formatter.Flycheck

A machine-readable format suitable for integration with tools like Flycheck or Syntastic

Dogma.Formatter.JSON

A machine readable format in JSON

Dogma.Formatter.Null

A formatter that prints nothing. Ever

Dogma.Formatter.Simple

A formatter that prints a dot per file, followed by details at the end

Dogma.Rule

The Rule behaviour, used to assert the interface used by our Rule modules

Dogma.Rule.BarePipeChainStart

A rule that enforces that function chains always begin with a bare value, rather than a function call with arguments

Dogma.Rule.ComparisonToBoolean

A rule that disallows comparison to booleans

Dogma.Rule.DebuggerStatement

A rule that disallows calls to IEx.pry

Dogma.Rule.FinalCondition

A rule that checks that the last condition of a cond statement is true

Dogma.Rule.FinalNewline

A rule that disallows files that don’t end with a final newline

Dogma.Rule.FunctionArity

A rule that disallows functions and macros with arity greater than 4, meaning a function may not take more than 4 arguments

Dogma.Rule.FunctionName

A rule that disallows function names not in snake_case

Dogma.Rule.HardTabs

Requires that all indentation is done using spaces rather than hard tabs

Dogma.Rule.LineLength

A rule that disallows lines longer than X characters in length (defaults to 80)

Dogma.Rule.LiteralInCondition

A rule that disallows useless conditional statements that contain a literal in place of a variable or predicate function

Dogma.Rule.LiteralInInterpolation

A rule that disallows useless string interpolations that contain a literal value instead of a variable or function. Examples:

Dogma.Rule.MatchInCondition

Disallows use of the match operator in the conditional constructs if and unless. This is because it is often intended to be == instead, but was mistyped. Also, since a failed match raises a MatchError, the conditional construct is largely redundant

Dogma.Rule.ModuleAttributeName

A rule that disallows module attribute names not in snake_case

Dogma.Rule.ModuleDoc

A rule which states that all modules must have documentation in the form of a @moduledoc attribute

Dogma.Rule.ModuleName

A rule that disallows module names not in PascalCase

Dogma.Rule.NegatedIfUnless

A rule that disallows the use of an if or unless with a negated predicate, When you do this, swap the if for an unless, or vice versa

Dogma.Rule.PredicateName

A rule that disallows tautological predicate names, meaning those that start with the prefix has_ or the prefix is_

Dogma.Rule.QuotesInString

A rule that disallows strings containing the double quote character (")

Dogma.Rule.Semicolon

A rule that disallows semicolons to terminate or separate statements

Dogma.Rule.TrailingBlankLines

A rule that disallows trailing blank lines as the end of a source file

Dogma.Rule.TrailingWhitespace

A rule that disallows trailing whitespace at the end of a line

Dogma.Rule.UnlessElse

A rule that disallows the use of an else block with the unless macro

Dogma.Rule.VariableName

A rule that disallows variable names not in snake_case

Dogma.Rule.WindowsLineEndings

A rule that disallows any lines terminated with \r\n, the line terminator commonly used on the Windows operating system

Dogma.RuleSet

The RuleSet behaviour, used to assert the interface used by our RuleSets

Dogma.RuleSet.All

The module which defines all the rules to run in Dogma

Dogma.Rules

Responsible for running of the appropriate rule set on a given set of scripts with the appropriate configuration

Dogma.Script

This module provides the struct that we use to reprisent source files, their abstract syntax tree, etc, as well as a few convenient functions for working with them

Dogma.ScriptSources

A module responsible for the identifying of Elixir source files to be analyised by Dogma

Dogma.Util.ASTNode

Utility functions for analyzing and categorizing AST nodes

Dogma.Util.CyclomaticComplexity

A module for calculating the cyclomatic complexity for an AST

Dogma.Util.Name

Utility functions for analysing names

Dogma.Util.ScriptStrings

A preprocessor for scripts, to be used on the script string before the AST, lines, etc have been computed for it

Mix.Tasks.Dogma

Check Elixir source files for style violations

Exceptions summary

Dogma.Script.InvalidScriptError

An exception that can raised when source has invalid syntax