Add object id lookup

This commit is contained in:
Carlos Martín Nieto
2013-03-02 03:27:40 +01:00
parent d62511515d
commit 9b2a053848
7 changed files with 48 additions and 4 deletions

View File

@@ -6,7 +6,7 @@
-include("geef_records.hrl").
-export([lookup/2]).
-export([lookup/2, id/1]).
-spec lookup(repo(), oid() | iolist()) -> object().
lookup(#repo{handle=RepoHandle}, #oid{oid=Oid}) ->
@@ -19,6 +19,14 @@ lookup(#repo{handle=RepoHandle}, #oid{oid=Oid}) ->
lookup(Repo = #repo{}, Id) ->
lookup(Repo, geef_oid:parse(Id)).
id(#object{handle=Handle}) ->
case geef:object_id(Handle) of
{ok, Oid} ->
#oid{oid=Oid};
Other ->
Other
end.
-ifdef(TEST).
lookup_test() ->
@@ -28,4 +36,11 @@ lookup_test() ->
{ok, #object{type=commit}} = lookup(Repo, ["b5b68cce8b92ca0e7", "bd48430617ac10c0f2c2923"]),
{ok, #object{type=commit}} = lookup(Repo, <<"b5b68cce8b92ca0e7bd48430617ac10c0f2c2923">>).
id_test() ->
{ok, Repo} = geef_repo:open(".."),
Sha = <<"b5b68cce8b92ca0e7bd48430617ac10c0f2c2923">>,
Id = geef_oid:parse(Sha),
{ok, Commit = #object{type=commit}} = lookup(Repo, Sha),
Id = id(Commit).
-endif.