diff --git a/lib/geef/pkt.ex b/lib/geef/pkt.ex index bdfc02a..3273930 100644 --- a/lib/geef/pkt.ex +++ b/lib/geef/pkt.ex @@ -8,8 +8,8 @@ defmodule Geef.Pkt do def parse_request(str) do case :geef_pkt.parse_request(str) do - {:ok, req} -> - {:ok, Geef.Request.new req} + {:ok, {:geef_request, service, path, host}} -> + {:ok, %Geef.Request{service: service, path: path, host: host}} error -> error end diff --git a/lib/geef/signature.ex b/lib/geef/signature.ex index 5de6d3f..46808f9 100644 --- a/lib/geef/signature.ex +++ b/lib/geef/signature.ex @@ -14,7 +14,7 @@ defmodule Geef.Signature do %Geef.Signature{name: name, email: email, time: time} end - def to_record(%Geef.Signature{name: name, email: email, time: time}) do + def to_record(%Geef.Signature{name: name, email: email, time: time}) do {:geef_signature, name, email, time} end diff --git a/lib/geef/tree.ex b/lib/geef/tree.ex index ac0bb8c..4d190f9 100644 --- a/lib/geef/tree.ex +++ b/lib/geef/tree.ex @@ -71,13 +71,13 @@ defimpl Enumerable, for: Geef.Tree do alias Geef.TreeError def count(tree) do - Tree.count(tree) + {:ok, Tree.count(tree)} end def member?(tree, key) do case Tree.get(tree, key) do - {:ok, _} -> true - _ -> false + {:ok, _} -> {:ok, true} + _ -> {:ok, false} end end diff --git a/mix.exs b/mix.exs index 3633e5d..7c40c6e 100644 --- a/mix.exs +++ b/mix.exs @@ -113,7 +113,8 @@ defmodule Geef.Mixfile do [ app: :geef, version: "0.0.1", compilers: [:nif, :erlang, :elixir, :app], - deps: deps ] + deps: deps, + dialyzer: dialyzer ] end def nif do @@ -131,4 +132,10 @@ defmodule Geef.Mixfile do defp deps do [] end + + def dialyzer do + [ plt_apps: [:erts, :kernel, :stdlib, :mnesia], + flags: ["-Wunmatched_returns","-Werror_handling","-Wrace_conditions", "-Wno_opaque"]] + end + end diff --git a/src/geef_nif.erl b/src/geef_nif.erl index 5b03c9a..96a262b 100644 --- a/src/geef_nif.erl +++ b/src/geef_nif.erl @@ -115,7 +115,7 @@ commit_tree(_Handle) -> commit_create(_RepoHandle, _Ref, _Author, _Committer, _Encoding, _Message, _Tree, _Parents) -> ?NIF_FN. --spec commit_message(term) -> binary(). +-spec commit_message(term) -> {ok, binary()} | {error, term()}. commit_message(_CommitHandle) -> ?NIF_FN. diff --git a/test/index_test.exs b/test/index_test.exs index d5b1f7e..73a7b59 100644 --- a/test/index_test.exs +++ b/test/index_test.exs @@ -2,7 +2,6 @@ defmodule IndexTest do use ExUnit.Case use Geef alias Geef.Index - alias Geef.Index.Entry import RepoHelpers