Dogma v0.1.16 Dogma.Rule.FinalCondition

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

For example, prefer this:

cond do
  1 + 2 == 5 ->
    "Nope"
  1 + 3 == 5 ->
    "Uh, uh"
  true ->
    "OK"
end

Not this:

cond do
  1 + 2 == 5 ->
    "Nope"
  1 + 3 == 5 ->
    "Nada"
  _ ->
    "OK"
end

This rule will only catch those cond statements where the last condition is a literal or a _. Complex expressions and function calls will not generate an error.

For example, neither of the following will generate an error:

cond do
  some_predicate? -> "Nope"
  var == :atom    -> "Yep"
end

cond do
  var == :atom    -> "Nope"
  some_predicate? -> "Yep"
end

An atom may also be used as a catch-all expression in a cond, since it evaluates to a truthy value. Suggested atoms are :else or :otherwise.

To allow one of these instead of true, pass it to the rule as a :catch_all option.

If you would like to enforce the use of _ as your catch-all condition, pass the atom :_ into the :catch_all option.

cond do
  _ -> "Yep"
end

cond do
  :_ -> "Yep"
end

Summary

Functions

Callback implementation for c:Dogma.Rule.test/2

Functions

test(rule, script)

Callback implementation for c:Dogma.Rule.test/2.