Skip to content

Commit 42eb793

Browse files
committed
added more tests, clean up code
1 parent fa6fe94 commit 42eb793

File tree

5 files changed

+5
-52
lines changed

5 files changed

+5
-52
lines changed

coveralls.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"skip_files": [
33
"lib/bson/utils.ex",
4-
"lib/mongo/binary_utils.ex"
4+
"lib/mongo/binary_utils.ex",
5+
"test/"
56
]
67
}

lib/mongo.ex

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ defmodule Mongo do
4747
"""
4848

4949
import Keywords
50+
import Mongo.Utils
5051
import Mongo.WriteConcern
5152

5253
require Logger
@@ -1081,19 +1082,6 @@ defmodule Mongo do
10811082
|> Stream.map(fn coll -> coll["name"] end)
10821083
end
10831084

1084-
defp modifier_docs([{key, _}|_], type), do: key |> key_to_string |> modifier_key(type)
1085-
defp modifier_docs(map, _type) when is_map(map) and map_size(map) == 0, do: :ok
1086-
defp modifier_docs(map, type) when is_map(map), do: Enum.at(map, 0) |> elem(0) |> key_to_string |> modifier_key(type)
1087-
defp modifier_docs(list, type) when is_list(list), do: Enum.map(list, &modifier_docs(&1, type))
1088-
1089-
defp modifier_key(<<?$, _::binary>> = other, :replace), do: raise(ArgumentError, "replace does not allow atomic modifiers, got: #{other}")
1090-
defp modifier_key(<<?$, _::binary>>, :update), do: :ok
1091-
defp modifier_key(<<_, _::binary>> = other, :update), do: raise(ArgumentError, "update only allows atomic modifiers, got: #{other}")
1092-
defp modifier_key(_, _), do: :ok
1093-
1094-
defp key_to_string(key) when is_atom(key), do: Atom.to_string(key)
1095-
defp key_to_string(key) when is_binary(key), do: key
1096-
10971085
defp cursor(topology_pid, cmd, opts) do
10981086
%Mongo.Cursor{topology_pid: topology_pid, cmd: cmd, on_resume_token: nil, opts: opts}
10991087
end
@@ -1131,33 +1119,4 @@ defmodule Mongo do
11311119
Keyword.put_new(opts, :timeout, @timeout)
11321120
end
11331121

1134-
defp assign_ids(list) when is_list(list) do
1135-
Enum.map(list, &assign_id/1)
1136-
|> Enum.unzip
1137-
end
1138-
1139-
defp assign_id(%{_id: id} = map) when id != nil, do: {id, map}
1140-
defp assign_id(%{"_id" => id} = map) when id != nil, do: {id, map}
1141-
defp assign_id([{_, _} | _] = keyword) do
1142-
case Keyword.take(keyword, [:_id, "_id"]) do
1143-
[{_key, id} | _] when id != nil -> {id, keyword}
1144-
[] -> add_id(keyword)
1145-
end
1146-
end
1147-
1148-
defp assign_id(map) when is_map(map) do
1149-
map |> Map.to_list |> add_id
1150-
end
1151-
1152-
##
1153-
# Inserts an ID to the document. A distinction is made as to whether binaries or atoms are used as keys.
1154-
#
1155-
defp add_id(doc) do
1156-
id = Mongo.IdServer.new
1157-
{id, add_id(doc, id)}
1158-
end
1159-
defp add_id([{key, _}|_] = list, id) when is_atom(key), do: [{:_id, id}|list]
1160-
defp add_id([{key, _}|_] = list, id) when is_binary(key), do: [{"_id", id}|list]
1161-
defp add_id([], id), do: [{"_id", id}]
1162-
11631122
end

lib/mongo/bulk_ops.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ defmodule Mongo.BulkOps do
2929
{atom, {BSON.document, Keyword.t}} |
3030
{atom, {BSON.document, BSON.document, Keyword.t}}
3131

32+
import Keywords
3233
import Mongo.Utils
3334

3435
@doc """

lib/mongo/bulk_write.ex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ defmodule Mongo.BulkWrite do
154154
155155
"""
156156

157+
import Keywords
157158
import Mongo.Utils
158159
import Mongo.WriteConcern
159160
alias Mongo.UnorderedBulk

lib/utils.ex

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
defmodule Mongo.Utils do
22

3-
def filter_nils(keyword) when is_list(keyword) do
4-
Enum.reject(keyword, fn {_key, value} -> is_nil(value) end)
5-
end
6-
7-
def filter_nils(map) when is_map(map) do
8-
Enum.reject(map, fn {_key, value} -> is_nil(value) end)
9-
|> Enum.into(%{})
10-
end
11-
123
def assign_ids(list) when is_list(list) do
134
Enum.map(list, &assign_id/1)
145
|> Enum.unzip

0 commit comments

Comments
 (0)