Skip to content
This repository was archived by the owner on Dec 17, 2018. It is now read-only.

Commit d5da3dd

Browse files
Connor RigbyConnorRigby
authored andcommitted
I misunderstood that function title.
1 parent 90c4f28 commit d5da3dd

File tree

2 files changed

+27
-43
lines changed

2 files changed

+27
-43
lines changed

lib/sqlite.ex

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ defmodule Sqlite do
5555
)
5656

5757
{:ok, conn}
58-
{:error, reason} -> {:error, reason}
58+
59+
{:error, reason} ->
60+
{:error, reason}
5961
end
6062
end
6163

@@ -175,47 +177,26 @@ defmodule Sqlite do
175177
end
176178

177179
@doc """
178-
Closes an (extended) prepared query and returns `:ok` or
179-
`{:error, %Sqlite.Error{}}` if there was an error. Closing a query releases
180-
any resources held by sqlite3 for a prepared query with that name. See
181-
`Sqlite.Query` for the query data.
182-
183-
## Examples
184-
query = Sqlite.prepare!(conn, "", "CREATE TABLE posts (id serial, title text)")
185-
Sqlite.close(conn, query)
180+
Closes the connection to the database.
186181
"""
187-
@spec close(conn, Sqlite.Query.t(), Keyword.t()) :: :ok | {:error, Sqlite.Error.t()}
188-
189-
def close(conn, query \\ nil, opts \\ [])
190-
def close(conn, query, opts) do
182+
@spec close(conn, Keyword.t()) :: :ok | {:error, Sqlite.Error.t()}
183+
def close(conn, opts \\ []) when is_list(opts) do
191184
opts = defaults(opts)
192-
193-
do_close = fn(conn, opts) ->
194-
GenServer.call(conn.pid, {:close, opts}, call_timeout(opts))
195-
|> case do
196-
:ok -> :ok
197-
{:error, %Sqlite.Error{}} = ok -> ok
198-
err -> unexpected_response(err, :close)
199-
end
200-
end
201-
202-
if query do
203-
case execute(query, [], opts) do
204-
{:error, reason} -> {:error, reason}
205-
{:ok, _result} -> do_close.(conn, opts)
206-
end
207-
else
208-
do_close.(conn, opts)
185+
GenServer.call(conn.pid, {:close, opts}, call_timeout(opts))
186+
|> case do
187+
:ok -> :ok
188+
{:error, %Sqlite.Error{}} = ok -> ok
189+
err -> unexpected_response(err, :close)
209190
end
210191
end
211192

212193
@doc """
213194
Closes an (extended) prepared query and returns `:ok` or raises
214195
`Sqlite.Error` if there was an error. See `close/3`.
215196
"""
216-
@spec close!(conn, Sqlite.Query.t(), Keyword.t()) :: :ok
217-
def close!(conn, query \\ nil, opts \\ []) do
218-
case close(conn, query, opts) do
197+
@spec close!(conn, Keyword.t()) :: :ok
198+
def close!(conn, opts \\ []) do
199+
case close(conn, opts) do
219200
:ok -> :ok
220201
{:error, reason} -> raise Sqlite.Error, %{reason: reason}
221202
end

lib/sqlite/server.ex

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,22 @@ defmodule Sqlite.Server do
88
defstruct [:database, :filename]
99
@typedoc false
1010
@type t :: %__MODULE__{
11-
database: Esqlite3.connection | :closed,
12-
filename: Esqlite3.filename,
13-
}
11+
database: Esqlite3.connection() | :closed,
12+
filename: Esqlite3.filename()
13+
}
1414
end
1515

1616
@impl GenServer
1717
def init(opts) do
1818
filename = Keyword.fetch!(opts, :database)
1919
timeout = Keyword.fetch!(opts, :timeout)
20+
2021
case Esqlite3.open(filename, timeout) do
2122
{:ok, db} ->
22-
{:ok, struct(State, [database: db, filename: filename])}
23-
err -> {:stop, err}
23+
{:ok, struct(State, database: db, filename: filename)}
24+
25+
err ->
26+
{:stop, err}
2427
end
2528
end
2629

@@ -29,22 +32,23 @@ defmodule Sqlite.Server do
2932
unless state.database == :closed do
3033
:ok = Esqlite3.close(state.database)
3134
end
35+
3236
:ok
3337
end
3438

3539
@impl GenServer
3640
def handle_call({:query, query, params, _opts}, _from, state) do
37-
Esqlite3.q(query.statement, params, state.database) |> IO.inspect
41+
Esqlite3.q(query.statement, params, state.database) |> IO.inspect()
3842
{:reply, {:error, %Sqlite.Error{message: "Not implemented"}}, state}
3943
end
4044

4145
def handle_call({:prepare, query, opts}, _from, state) do
42-
Esqlite3.prepare(query.statement, state.database, opts[:timeout]) |> IO.inspect
46+
Esqlite3.prepare(query.statement, state.database, opts[:timeout]) |> IO.inspect()
4347
{:reply, {:error, %Sqlite.Error{message: "Not implemented"}}, state}
4448
end
4549

4650
def handle_call({:execute, query, params, opts}, _from, state) do
47-
Esqlite3.exec(query.statement, params, state.database, opts[:timeout]) |> IO.inspect
51+
Esqlite3.exec(query.statement, params, state.database, opts[:timeout]) |> IO.inspect()
4852
{:reply, {:error, %Sqlite.Error{message: "Not implemented"}}, state}
4953
end
5054

@@ -55,6 +59,5 @@ defmodule Sqlite.Server do
5559
end
5660
end
5761

58-
defp error(reason, _state), do: %Sqlite.Error{message: reason}
59-
62+
defp error(reason, _state), do: {:error, %Sqlite.Error{message: reason}}
6063
end

0 commit comments

Comments
 (0)