defmodule UseAgent do @moduledoc """ Uso do módulo Agente. """ @doc """ Exemplo uso da função Agente.value/1. """ def value(key \\ :cursor) do Agente.value() |> Map.get(key) end @doc """ Exemplo uso da função Agente.update/2. """ def update(key, value) do Agente.update(key, value) {:ok, "value updated to #{value}"} end @doc """ Exemplo uso da função Agente.new/2). """ def new(key, value) do Agente.update(value, key) {:ok, "new value added"} end @doc """ Exemplo uso da função Agente.update/2. """ def change_state do IO.puts "====================" ["def456", "ghi789", "jkl101", "mno121", "pqr131", "stu141", "vwx151", "yza151"] |> Enum.map(&do_change/1) end @doc """ Exemplo uso da função Agente.update/2. Função privada. """ defp do_change(value) do IO.puts "function: do_change/1" IO.puts "Valor antigo: #{Map.get(Agente.value(), :cursor)}" Agente.update(value) IO.puts "Novo valor: #{Map.get(Agente.value(), :cursor)}" Process.sleep(1000) IO.puts "====================" end end # UseAgent.change_state