Behaviour every filter must implement.
Example
defmodule Despamilator.Filter.DetectLetterA do
use Despamilator.Filter,
name: "Detecting the letter A",
description: ~s(Detects the letter "a" for demo purposes)
alias Despamilator.Subject
@impl true
def parse(%Subject{} = subject) do
if String.contains?(String.downcase(subject.text), "a") do
Subject.register_match(subject, __MODULE__, 0.1)
else
subject
end
end
end
Summary
Callbacks
@callback description() :: String.t()
@callback name() :: String.t()
@callback parse(Despamilator.Subject.t()) :: Despamilator.Subject.t()