From 361c9ddb27bf8861e03ebf967f49f55ca8298c02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 2 Mar 2013 03:10:42 +0100 Subject: [PATCH] Let geef_object:lookup also be an iolist --- src/geef_object.erl | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/geef_object.erl b/src/geef_object.erl index 5421833..1a52763 100644 --- a/src/geef_object.erl +++ b/src/geef_object.erl @@ -1,14 +1,31 @@ -module(geef_object). +-ifdef(TEST). +-include_lib("eunit/include/eunit.hrl"). +-endif. + -include("geef_records.hrl"). -export([lookup/2]). --spec lookup(repo(), oid()) -> object(). +-spec lookup(repo(), oid() | iolist()) -> object(). lookup(#repo{handle=RepoHandle}, #oid{oid=Oid}) -> case geef:object_lookup(RepoHandle, Oid) of {ok, Type, Handle} -> {ok, #object{type=Type, handle=Handle}}; Other -> Other - end. + end; +lookup(Repo = #repo{}, Id) -> + lookup(Repo, geef_oid:parse(Id)). + +-ifdef(TEST). + +lookup_test() -> + {ok, Repo} = geef_repo:open(".."), + {ok, #object{type=commit}} = lookup(Repo, geef_oid:parse("b5b68cce8b92ca0e7bd48430617ac10c0f2c2923")), + {ok, #object{type=commit}} = lookup(Repo, "b5b68cce8b92ca0e7bd48430617ac10c0f2c2923"), + {ok, #object{type=commit}} = lookup(Repo, ["b5b68cce8b92ca0e7", "bd48430617ac10c0f2c2923"]), + {ok, #object{type=commit}} = lookup(Repo, <<"b5b68cce8b92ca0e7bd48430617ac10c0f2c2923">>). + +-endif.