Skip to content

Commit 7a025ba

Browse files
committed
Fix warnings, linting and add specs
1 parent 855082c commit 7a025ba

File tree

9 files changed

+374
-204
lines changed

9 files changed

+374
-204
lines changed

.editorconfig

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[*.ex]
2+
trim_trailing_whitespace = true
3+
indent_size = 2
4+
indent_style = space
5+
6+
[cqex.code-workspace,*.json]
7+
indent_size = 2
8+
indent_style = space

lib/cqex.ex

Lines changed: 70 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,44 @@
11
defmodule CQEx do
2+
@moduledoc false
3+
24
require Record
35

4-
Record.defrecord :cql_query, [
6+
@type consistency_values ::
7+
:all
8+
| :any
9+
| :each_quorum
10+
| :local_one
11+
| :local_quorum
12+
| :one
13+
| :quorum
14+
| :three
15+
| :two
16+
| 0
17+
| 1
18+
| 2
19+
| 3
20+
| 4
21+
| 5
22+
| 6
23+
| 7
24+
| 10
25+
26+
@type serial_consistency_values ::
27+
:local_serial
28+
| :serial
29+
| :undefined
30+
| 8
31+
| 9
32+
33+
@type batch_mode_values ::
34+
:counter
35+
| :logged
36+
| :unlogged
37+
| 0
38+
| 1
39+
| 2
40+
41+
Record.defrecord(:cql_query,
542
statement: <<>>,
643
values: [],
744
reusable: nil,
@@ -11,28 +48,40 @@ defmodule CQEx do
1148
consistency: :one,
1249
serial_consistency: nil,
1350
value_encode_handler: nil
14-
]
51+
)
52+
53+
@type cql_query ::
54+
{:cql_query, iodata(), Keyword.t() | Map.t(), boolean | :undefined, boolean, integer,
55+
:undefined | binary, consistency_values(), serial_consistency_values(),
56+
:undefined | fun}
1557

16-
Record.defrecord :cql_query_batch, [
58+
Record.defrecord(:cql_query_batch,
1759
consistency: :one,
1860
mode: :logged,
1961
queries: []
20-
]
62+
)
2163

22-
Record.defrecord :cql_schema_changed, [
64+
@type cql_query_batch ::
65+
{:cql_query_batch, consistency_values(), batch_mode_values(), [cql_query]}
66+
67+
Record.defrecord(:cql_schema_changed, [
2368
:change_type,
2469
:target,
2570
:keyspace,
2671
:name,
2772
:args
28-
]
73+
])
74+
75+
@type cql_schema_changed :: {:cql_schema_change, any, any, any, any, any}
2976

30-
Record.defrecord :cql_result, [
77+
Record.defrecord(:cql_result,
3178
columns: [],
3279
dataset: [],
3380
cql_query: nil,
3481
client: nil
35-
]
82+
)
83+
84+
@type cql_result :: {:cql_result, any, any, any, any}
3685

3786
defmodule Error do
3887
defexception [:message, :stack]
@@ -42,26 +91,25 @@ defmodule CQEx do
4291

4392
defmacro consistency do
4493
%{
45-
any: 0,
46-
one: 1,
47-
two: 2,
48-
three: 3,
49-
quorum: 4,
50-
all: 5,
51-
local_quorum: 6,
52-
each_quorum: 7,
53-
serial: 8,
54-
local_serial: 9,
55-
local_one: 10
94+
any: 0,
95+
one: 1,
96+
two: 2,
97+
three: 3,
98+
quorum: 4,
99+
all: 5,
100+
local_quorum: 6,
101+
each_quorum: 7,
102+
serial: 8,
103+
local_serial: 9,
104+
local_one: 10
56105
}
57106
end
58107

59108
defmacro batch_mode do
60109
%{
61-
logged: 0,
110+
logged: 0,
62111
unlogged: 1,
63-
counter: 2
112+
counter: 2
64113
}
65114
end
66115
end
67-

lib/cqex/client.ex

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,68 @@
11
defmodule CQEx.Client do
2-
import CQEx.Helpers
2+
@moduledoc false
3+
34
import CQEx, only: :macros
45

5-
defdelegate new, to: :cqerl, as: :get_client
6-
defdelegate new(a), to: :cqerl, as: :get_client
7-
defdelegate new(a, b), to: :cqerl, as: :get_client
6+
defdelegate new, to: :cqerl, as: :get_client
7+
defdelegate new(a), to: :cqerl, as: :get_client
8+
defdelegate new(a, b), to: :cqerl, as: :get_client
9+
10+
@type client_value ::
11+
:cqerl.client()
12+
| CQEx.Result.t()
13+
| CQEx.cql_result()
14+
| CQEx.Result.SchemaChanged.t()
15+
| CQEx.Result.Empty.t()
816

17+
@spec close(client_value) :: :ok
918
def close(client) do
1019
client
1120
|> CQEx.Client.get()
1221
|> :cqerl.close_client()
1322
end
1423

15-
defbang new
16-
defbang new(a)
17-
defbang new(a, b)
24+
@spec new! :: :cqerl.client()
25+
def new!() do
26+
case new() do
27+
{:ok, client} ->
28+
client
29+
end
30+
end
31+
32+
@spec new!(:cqerl.inet()) :: :cqerl.client()
33+
def new!(a) do
34+
case new(a) do
35+
{:ok, client} ->
36+
client
37+
end
38+
end
39+
40+
@spec new!(:cqerl.inet(), Keyword.t()) :: :cqerl.client()
41+
def new!(a, b) do
42+
case new(a, b) do
43+
{:ok, client} ->
44+
client
45+
end
46+
end
1847

19-
def get(client={p, r}) when is_pid(p) and is_reference(r) do
48+
@spec get(client_value) :: :cqerl.client()
49+
def get(client = {p, r}) when is_pid(p) and is_reference(r) do
2050
client
2151
end
52+
2253
def get(%CQEx.Result{record: cql_result(client: client)}) do
2354
client
2455
end
56+
2557
def get(cql_result(client: client)) do
2658
client
2759
end
60+
2861
def get(%CQEx.Result.SchemaChanged{client: client}) do
2962
client
3063
end
64+
3165
def get(%CQEx.Result.Empty{client: client}) do
3266
client
3367
end
34-
def get(_) do
35-
nil
36-
end
3768
end

lib/cqex/cluster.ex

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
defmodule CQEx.Cluster do
2-
defdelegate add(a), to: :cqerl_cluster, as: :add_nodes
3-
defdelegate add(a, b), to: :cqerl_cluster, as: :add_nodes
2+
@moduledoc false
3+
4+
defdelegate add(a), to: :cqerl_cluster, as: :add_nodes
5+
defdelegate add(a, b), to: :cqerl_cluster, as: :add_nodes
46
defdelegate add(a, b, c), to: :cqerl_cluster, as: :add_nodes
57
end

lib/cqex/helpers.ex

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)