diff --git a/lib/geef/blob.ex b/lib/geef/blob.ex index a0d3769..a7b52b4 100644 --- a/lib/geef/blob.ex +++ b/lib/geef/blob.ex @@ -5,7 +5,7 @@ defmodule Geef.Blob do def lookup(repo, id) do case :geef_obj.lookup(repo, id) do {:ok, obj} -> - {:ok, Object.new obj} + {:ok, Object.from_erl obj} error -> error end diff --git a/lib/geef/commit.ex b/lib/geef/commit.ex index d18e5a3..3c0a66d 100644 --- a/lib/geef/commit.ex +++ b/lib/geef/commit.ex @@ -5,7 +5,7 @@ defmodule Geef.Commit do def lookup(repo, id) do case :geef_commit.lookup(repo, id) do {:ok, commit} -> - {:ok, Object.new commit} + {:ok, Object.from_erl commit} error -> error end diff --git a/lib/geef/iterator.ex b/lib/geef/iterator.ex index 39915ea..ccad12d 100644 --- a/lib/geef/iterator.ex +++ b/lib/geef/iterator.ex @@ -9,7 +9,8 @@ defrecord Geef.Iterator, Record.extract(:geef_iterator, from: "src/geef_records. end end - def new(iterator) do + @spec from_erl(term()) :: t + def from_erl(iterator) do set_elem(iterator, 0, Geef.Iterator) end @@ -17,7 +18,7 @@ defrecord Geef.Iterator, Record.extract(:geef_iterator, from: "src/geef_records. iter = case :geef_ref.iterator(repo, regexp) do {:ok, iter} -> - Iterator.new iter + Iterator.from_erl iter {:error, error} -> raise Geef.IteratorError, message: error end @@ -27,7 +28,7 @@ defrecord Geef.Iterator, Record.extract(:geef_iterator, from: "src/geef_records. defp do_stream(iter = Iterator[type: :ref], acc, fun) do case :geef_ref.next(rebind(iter)) do {:ok, ref} -> - do_stream(iter, fun.(Reference.new(ref), acc), fun) + do_stream(iter, fun.(Reference.from_erl(ref), acc), fun) {:error, :iterover} -> acc {:error, error} -> diff --git a/lib/geef/object.ex b/lib/geef/object.ex index e3135e1..231a7a1 100644 --- a/lib/geef/object.ex +++ b/lib/geef/object.ex @@ -7,22 +7,22 @@ defrecord Geef.Object, Record.extract(:geef_object, from: "src/geef_records.hrl" end end - def new(obj) do - do_new(obj, elem(obj, 0)) + def from_erl(obj) do + do_from_erl(obj, elem(obj, 0)) end - defp do_new(obj, :geef_tree) do + defp do_from_erl(obj, :geef_tree) do set_elem(obj, 0, Geef.Tree) end - defp do_new(obj, _) do + defp do_from_erl(obj, _) do set_elem(obj, 0, Geef.Object) end def lookup(repo, id) do case :geef_obj.lookup(repo, id) do {:ok, obj} -> - {:ok, Geef.Object.new obj} + {:ok, Geef.Object.from_erl obj} error -> error end diff --git a/lib/geef/reference.ex b/lib/geef/reference.ex index 492db49..8bbd2b2 100644 --- a/lib/geef/reference.ex +++ b/lib/geef/reference.ex @@ -8,11 +8,11 @@ defrecord Geef.Reference, Record.extract(:geef_reference, from: "src/geef_record end end - def new(ref) do + def from_erl(ref) do set_elem(ref, 0, Geef.Reference) end - defp maybe_ref({:ok, ref}), do: {:ok, Reference.new ref} + defp maybe_ref({:ok, ref}), do: {:ok, Reference.from_erl ref} defp maybe_ref(err = {:error, _}), do: err def lookup(repo, name), do: :geef_ref.lookup(repo, name) |> maybe_ref @@ -34,7 +34,7 @@ defrecord Geef.Reference, Record.extract(:geef_reference, from: "src/geef_record def iterator(repo, regexp // :undefined) do case :geef_ref.iterator(repo, regexp) do {:ok, iter} -> - {:ok, Geef.Iterator.new iter} + {:ok, Geef.Iterator.from_erl iter} other -> other end diff --git a/lib/geef/tag.ex b/lib/geef/tag.ex index 0274f6b..e470474 100644 --- a/lib/geef/tag.ex +++ b/lib/geef/tag.ex @@ -6,7 +6,7 @@ defmodule Geef.Tag do def peel(tag = Object[type: :tag]) do case :geef_tag.peel(rebind(tag)) do {:ok, peeled} -> - {:ok, Object.new peeled} + {:ok, Object.from_erl peeled} error -> error end diff --git a/lib/geef/tree.ex b/lib/geef/tree.ex index 11d952c..4c8583c 100644 --- a/lib/geef/tree.ex +++ b/lib/geef/tree.ex @@ -1,5 +1,6 @@ defrecord Geef.TreeEntry, Record.extract(:geef_tree_entry, from: "src/geef_records.hrl") do - def new(obj) do + @spec from_erl(term()) :: t + def from_erl(obj) do set_elem(obj, 0, Geef.TreeEntry) end end @@ -13,13 +14,13 @@ defrecord Geef.Tree, Record.extract(:geef_object, from: "src/geef_records.hrl") def lookup(repo, id) do case :geef_tree.lookup(repo, id) do {:ok, obj} -> - {:ok, Object.new obj} + {:ok, Object.from_erl obj} error -> error end end - defp maybe_entry({:ok, entry}), do: {:ok, TreeEntry.new entry} + defp maybe_entry({:ok, entry}), do: {:ok, TreeEntry.from_erl entry} defp maybe_entry(error = {:error, _}), do: error def get(tree, path), do: :geef_tree.get(rebind(tree), path) |> maybe_entry