From 0e93508e80432ed1e3b4f0102c1c347b00625507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 10 Aug 2013 10:05:19 +0200 Subject: [PATCH] Adjust to newer elixir Calling Tree.new doesn't transform the record type any more. --- lib/geef/object.ex | 12 ++++++++++++ lib/geef/tree.ex | 8 ++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/lib/geef/object.ex b/lib/geef/object.ex index 3a07313..e3135e1 100644 --- a/lib/geef/object.ex +++ b/lib/geef/object.ex @@ -7,6 +7,18 @@ defrecord Geef.Object, Record.extract(:geef_object, from: "src/geef_records.hrl" end end + def new(obj) do + do_new(obj, elem(obj, 0)) + end + + defp do_new(obj, :geef_tree) do + set_elem(obj, 0, Geef.Tree) + end + + defp do_new(obj, _) do + set_elem(obj, 0, Geef.Object) + end + def lookup(repo, id) do case :geef_obj.lookup(repo, id) do {:ok, obj} -> diff --git a/lib/geef/tree.ex b/lib/geef/tree.ex index fcbcea2..11d952c 100644 --- a/lib/geef/tree.ex +++ b/lib/geef/tree.ex @@ -1,4 +1,8 @@ -defrecord Geef.TreeEntry, Record.extract(:geef_tree_entry, from: "src/geef_records.hrl") +defrecord Geef.TreeEntry, Record.extract(:geef_tree_entry, from: "src/geef_records.hrl") do + def new(obj) do + set_elem(obj, 0, Geef.TreeEntry) + end +end defrecord Geef.Tree, Record.extract(:geef_object, from: "src/geef_records.hrl") do alias Geef.Object @@ -9,7 +13,7 @@ defrecord Geef.Tree, Record.extract(:geef_object, from: "src/geef_records.hrl") def lookup(repo, id) do case :geef_tree.lookup(repo, id) do {:ok, obj} -> - {:ok, new obj} + {:ok, Object.new obj} error -> error end