this repo has no description

Rename cache functions to match Elixir convention

hauleth.dev 5dc8616e e7b117f5

verified
Changed files
+26 -4
lib
test
+1
lib/esl_hn/application.ex
···
children = [
EslHnWeb.Telemetry,
{Phoenix.PubSub, name: EslHn.PubSub},
+
{EslHn.Cache, name: EslHn},
EslHnWeb.Endpoint
]
+22 -1
lib/esl_hn/cache.ex
···
end
end
-
def read(tid, key) do
+
def fetch(tid, key) do
case :ets.lookup(tid, key) do
[{^key, data}] -> {:ok, data}
_ -> :error
end
end
+
def get(tid, key, default \\ nil) do
+
case fetch(tid, key) do
+
{:ok, val} -> val
+
:error -> default
+
end
+
end
+
def write(tid, key, data) do
true = :ets.insert(tid, {key, data})
+
+
:ok
+
end
+
+
def write_all(tid, data) do
+
true = :ets.insert(tid, data)
+
+
:ok
+
end
+
+
def prune(tid, id), do: :ets.delete(tid, id)
+
+
def prune_all(tid, ids) do
+
for id <- ids, do: :ets.delete(tid, id)
:ok
end
+3 -3
test/esl_hn/cache_test.exs
···
check all(key <- term(), data <- term()) do
assert :ok == @subject.write(tid, key, data)
-
assert {:ok, data} == @subject.read(tid, key)
+
assert {:ok, data} == @subject.fetch(tid, key)
end
end
test "fetching non existent key result in error" do
assert {:ok, _pid, tid} = start_supervised(@subject)
-
assert :error == @subject.read(tid, :non_existent)
+
assert :error == @subject.fetch(tid, :non_existent)
end
end
···
check all(key <- term(), data <- term()) do
assert :ok == @subject.write(name, key, data)
-
assert {:ok, data} == @subject.read(name, key)
+
assert {:ok, data} == @subject.fetch(name, key)
end
end
end