Merge branch 'revparse'

This commit is contained in:
Carlos Martín Nieto
2013-10-16 13:58:20 +02:00
9 changed files with 103 additions and 8 deletions

View File

@@ -7,15 +7,11 @@ defrecord Geef.Object, Record.extract(:geef_object, from: "src/geef_records.hrl"
end
end
def from_erl(obj) do
do_from_erl(obj, elem(obj, 0))
end
defp do_from_erl(obj, :geef_tree) do
def from_erl(obj) when elem(obj, 1) == :tree do
set_elem(obj, 0, Geef.Tree)
end
defp do_from_erl(obj, _) do
def rom_erl(obj) do
set_elem(obj, 0, Geef.Object)
end

17
lib/geef/revparse.ex Normal file
View File

@@ -0,0 +1,17 @@
defmodule Geef.Revparse do
import Geef
use Geef
@spec single(pid, iolist) :: {:ok, Object.t} | {:error, term}
def single(repo, str) do
case :geef_revparse.single(repo, str) do
{:ok, obj} ->
{:ok, Object.from_erl(obj)}
error -> error
end
end
@spec single!(pid, iolist) :: {:ok, Object.t}
def single!(repo, str), do: single(repo, str) |> assert_ok
end