Agent

Implementação uso de Agent em Elixir.

alt-text

Exemplos de Uso

Atualizar valor:

 iex> Agente.update("xxx001")
 :ok

Exibir estado atual:

 iex> Agente.value()
 %{cursor: "xxx001"}

 iex> Agente.value(:cursor)
 %{cursor: "xxx001"}

Nova chave - valor:

 iex> Agente.new(:index, "atualizacao")
 :ok
 iex> Agente.value()
%{cursor: :normal, index: "atualizacao"}

Incrementar um valor:

 iex> Agente.increment
 :ok
 iex> Agente.value()
%{cursor: :normal, sum: 1}

iex> Agente.increment(5)
:ok
iex> Agente.value
%{cursor: :normal, sum: 5}

Mesclar valores:

 iex> map = %{nome: "John Doe", last_name: "Smith", skills: [1, 2, 6]}
 iex> Agente.merge(map)
 %{cursor: :normal, last_name: "Smith", nome: "John Doe", skills: [1, 2, 6]}

Excluir um valor:

 %{cursor: "novo valor hh", nova: "outro valor"}
 iex> Agente.delete(:cursor)
 %{nova: "outro valor"}

Excluir muitos valores:

 %{foo: "foo bar", nova: "outro valor"}
 iex> Agente.drop([:foo, :nova])
 %{}

Configuração

Adicione a configuração abaixo à sua aplicação para incializar o Agent:

  def application do
    [
      extra_applications: [:logger],
      mod: {Agente, %{cursor: :normal}}
    ]
  end

Instalação

Se disponível em Hex, o pacote poderá ser instalado adicionando-se agente à sua lista de dependências em mix.exs:

def deps do
  [
    {:agente, "~> 0.1.1"}
  ]
end

A documentação pode ser gerada com ExDoc e publicada em HexDocs. Após publicação, o docs poderá ser encontrado em https://hexdocs.pm/agente.