Files
geef/lib/geef/object.ex
2013-09-05 15:37:01 +02:00

37 lines
668 B
Elixir

defrecord Geef.Object, Record.extract(:geef_object, from: "src/geef_records.hrl") do
@doc false
defmacro rebind(obj) do
quote do
set_elem(unquote(obj), 0, :geef_object)
end
end
def from_erl(obj) when elem(obj, 1) == :tree do
set_elem(obj, 0, Geef.Tree)
end
def rom_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.from_erl obj}
error ->
error
end
end
def lookup!(repo, id) do
case lookup(repo, id) do
{:ok, obj} ->
obj
{:error, err} ->
raise err
end
end
end