Refactor reference costructor

This commit is contained in:
Carlos Martín Nieto
2013-08-11 00:46:20 +02:00
parent 1f7e41995b
commit 4c63c08c50

View File

@@ -4,6 +4,11 @@
-include("geef_records.hrl"). -include("geef_records.hrl").
-spec new(term()) -> geef_reference().
new(Handle) ->
{ok, Name} = geef_nif:reference_name(Handle),
new(Name, Handle).
-spec new(binary(), term()) -> geef_reference(). -spec new(binary(), term()) -> geef_reference().
new(Name, Handle) -> new(Name, Handle) ->
Type = geef_nif:reference_type(Handle), Type = geef_nif:reference_type(Handle),
@@ -51,8 +56,7 @@ iterator(Repo) ->
next(#geef_iterator{type=ref, handle=Handle}) -> next(#geef_iterator{type=ref, handle=Handle}) ->
case geef_nif:reference_next(Handle) of case geef_nif:reference_next(Handle) of
{ok, RefHandle} -> {ok, RefHandle} ->
{ok, Name} = geef_nif:reference_name(RefHandle), {ok, new(RefHandle)};
{ok, new(Name, RefHandle)};
Other -> Other ->
Other Other
end. end.
@@ -63,8 +67,7 @@ resolve(Ref = #geef_reference{type=oid}) ->
resolve(#geef_reference{handle=Handle}) -> resolve(#geef_reference{handle=Handle}) ->
case geef_nif:reference_resolve(Handle) of case geef_nif:reference_resolve(Handle) of
{ok, Ref} -> {ok, Ref} ->
{ok, Name} = geef_nif:reference_name(Ref), {ok, new(Ref)};
{ok, new(Name, Ref)};
Other -> Other ->
Other Other
end. end.
@@ -73,8 +76,7 @@ resolve(#geef_reference{handle=Handle}) ->
dwim(Repo, Name) -> dwim(Repo, Name) ->
case geef_repo:reference_dwim(Repo, Name) of case geef_repo:reference_dwim(Repo, Name) of
{ok, Handle} -> {ok, Handle} ->
{ok, FullName} = geef_nif:reference_name(Handle), {ok, new(Handle)};
{ok, new(FullName, Handle)};
Err -> Err ->
Err Err
end. end.