43. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
end
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
end
defmodule FantasyTeam.Basic do
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
end
44. defmodule FantasyTeam.MyGenServer do
use GenServer
defmodule FantasyTeam.Basic do
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
end
45. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
46. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
47. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
48. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
49. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
50. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
51. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
52. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
53. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
54. def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
def start_link do
spawn_link(__MODULE__, :loop, [%{}])
end
def loop(state) do
receive do
{:add, name} ->
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
loop(new_state)
{:remove, name} ->
new_state = Map.delete(state, name)
loop(new_state)
{:team, pid} ->
send(pid, {:ok, state})
loop(state)
end
end
55. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
56. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
57. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
58. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
59. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
60. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
61. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
62. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
63. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
64. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
65. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
66. defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
def init(:ok) do
{:ok, %{}}
end
def handle_cast({:add, name}, state) do
player = FantasyTeam.Player.find(name)
new_state = Map.put(state, name, player)
{:noreply, new_state}
end
def handle_cast({:remove, name}, state) do
new_state = Map.delete(state, name)
{:noreply, new_state}
end
def handle_call(:team, _from, state) do
{:reply, state, state}
end
end
67. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
68. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
69. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
70. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
71. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
72. defmodule FantasyTeam.SingleServer do
use GenServer
@name __MODULE__
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, name: @name)
end
def add(name) do
GenServer.cast(@name, {:add, name})
def
def remove(name) do
GenServer.cast(@name, {:remove, name})
end
def team do
GenServer.call(@name, :team)
end
# Callbacks
...
defmodule FantasyTeam.MyGenServer do
use GenServer
# API
def start_link do
GenServer.start_link(__MODULE__, :ok, [])
end
def add(pid, name) do
GenServer.cast(pid, {:add, name})
def
def remove(pid, name) do
GenServer.cast(pid, {:remove, name})
end
def team(pid) do
GenServer.call(pid, :team)
end
# Callbacks
...
81. defmodule FantasyTeam.MyAgent do
def start_link do
Agent.start_link(fn -> %{} end)
end
def add(pid, name) do
player = FantasyTeam.Player.find(name)
Agent.get_and_update(pid, fn(x) -> {player, Map.put(x, name, player)} end)
:ok
end
def remove(pid, name) do
Agent.update(pid, fn(x) -> Map.delete(x, name) end)
end
def team(pid) do
Agent.get(pid, fn(x) -> x end)
end
end