cover/Elixir.Elita.Vault.html

1 defmodule Elita.Vault do
2 101 def save(name, history) do
3 101 vsn = bump(name)
4 101 :ets.insert(:elita_vault, {name, vsn, history})
5 :ok
6 end
7
8 def load(name) do
9 58 wrap(read(name))
10 end
11
12 def restore(name) do
13 58 load(name)
14 end
15
16 defp bump(name) do
17 101 add(settle(check(name)))
18 end
19
20 58 defp wrap(nil), do: []
21
:-(
defp wrap(val), do: val
22
23 56 defp settle(nil), do: 0
24 45 defp settle(val), do: val
25
26 101 defp add(val), do: val + 1
27
28 defp check(name) do
29 101 found(lookup(name))
30 end
31
32 defp read(name) do
33 58 hist(lookup(name))
34 end
35
36 defp lookup(name) do
37 159 :ets.lookup(:elita_vault, name)
38 end
39
40 45 defp found([{_name, vsn, _history}]), do: vsn
41 56 defp found([]), do: nil
42
43
:-(
defp hist([{_name, _vsn, history}]), do: history
44 58 defp hist([]), do: nil
45 end
Line Hits Source