View Source Credo.Execution.Task behaviour (Credo v1.7.3)

A Task is a step in a pipeline, which is given an Credo.Execution struct and must return one as well.

Tasks in a pipeline are only called if they are not "halted" (see Credo.Execution.halt/2).

It implements a call/1 or call/2 callback, which is called with the Credo.Execution struct as first parameter (and the Task's options as the second in case of call/2).

Summary

Callbacks

Is called by the pipeline and contains the Task's actual code.

Works like call/1, but receives the options, which are optional when registering the Task, as second argument.

Gets called if call holds the execution via Credo.Execution.halt/1 or Credo.Execution.halt/2.

Works like error/1, but receives the options, which were given during pipeline registration, as second argument.

Callbacks

@callback call(exec :: Credo.Execution.t()) :: Credo.Execution.t()

Is called by the pipeline and contains the Task's actual code.

defmodule FooTask do
  use Credo.Execution.Task

  def call(exec) do
    IO.inspect(exec)
  end
end

The call/1 functions receives an exec struct and must return a (modified) Credo.Execution.

@callback call(exec :: Credo.Execution.t(), opts :: Keyword.t()) :: Credo.Execution.t()

Works like call/1, but receives the options, which are optional when registering the Task, as second argument.

defmodule FooTask do
  use Credo.Execution.Task

  def call(exec, opts) do
    IO.inspect(opts)

    exec
  end
end
@callback error(exec :: Credo.Execution.t()) :: Credo.Execution.t()

Gets called if call holds the execution via Credo.Execution.halt/1 or Credo.Execution.halt/2.

@callback error(exec :: Credo.Execution.t(), opts :: Keyword.t()) :: Credo.Execution.t()

Works like error/1, but receives the options, which were given during pipeline registration, as second argument.