Book Image

Elixir Cookbook

By : Paulo Pereira
Book Image

Elixir Cookbook

By: Paulo Pereira

Overview of this book

Table of Contents (16 chapters)
Elixir Cookbook
About the Author
About the Reviewers

Enforcing behaviors

One of the reserved module attributes in Elixir is @behaviour. It is used to ensure that a given module implements the required callbacks and that the module implements a given interface and behaves in a defined way.

How to do it…

To demonstrate the use of the @behaviour module attribute, follow these steps:

  1. Create the Randomizer module inside the randomizer.ex file by adding the following code:

    defmodule Randomizer do
      use Behaviour
      defcallback randomize(low::Integer.t, high::Integer.t) :: Integer.t
  2. Create a module to implement the Randomizer behavior inside the my_module.ex file by adding the following code:

    defmodule MyModule do
      @behaviour Randomizer
  3. Open a new IEx session in the same directory where the modules defined in steps 1 and 2 are stored:

    > iex
  4. Compile both modules starting with Randomizer:

    iex(1)> c("randomizer.ex")
    iex(2)> c("my_module.ex")
    my_module.ex:1: warning: undefined behaviour function randomize/2 (for behaviour Randomizer...