Skip to content

Commit 87bf33a

Browse files
committed
add example tests for extra args
1 parent 263937e commit 87bf33a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/cas/cell.ex

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,17 @@ defmodule Cas.Cell do
4646
iex> cell = Cas.Cell.new(1)
4747
iex> Cas.Cell.swap!(cell, fn v -> v + 99 end)
4848
100
49+
50+
iex> cell = Cas.Cell.new(1)
51+
iex> Cas.Cell.swap!(cell, fn v, a, b, c -> v + a + b + c end, [4, 5, 6])
52+
16
4953
"""
5054
def swap!(%__MODULE__{id: id, table: table} = cell, f, args \\ nil) do
5155
[{^id, old_value} = old_kv] = :ets.lookup(table, id)
5256

5357
new_value =
5458
if args do
55-
f.(old_value, args)
59+
apply(f, [old_value | args])
5660
else
5761
f.(old_value)
5862
end
@@ -96,13 +100,17 @@ defmodule Cas.Cell do
96100
iex> cell = Cas.Cell.new(1)
97101
iex> Cas.Cell.swap_old_and_new!(cell, fn v -> v + 99 end)
98102
{1, 100}
103+
104+
iex> cell = Cas.Cell.new(1)
105+
iex> Cas.Cell.swap_old_and_new!(cell, fn v, a, b, c -> v + a + b + c end, [4, 5, 6])
106+
{1, 16}
99107
"""
100108
def swap_old_and_new!(%__MODULE__{id: id, table: table} = cell, f, args \\ nil) do
101109
[{^id, old_value} = old_kv] = :ets.lookup(table, id)
102110

103111
new_value =
104112
if args do
105-
f.(old_value, args)
113+
apply(f, [old_value | args])
106114
else
107115
f.(old_value)
108116
end

0 commit comments

Comments
 (0)