Use elixir names for elixir records
Follow the example set by elixir's use of FileInfo and use elixir-y names for refs and objects, and convert them to :geef_reference and :geef_object when we pass them down to erlang geef.
This commit is contained in:
@@ -1,10 +1,16 @@
|
|||||||
defrecord :geef_object, Record.extract(:geef_object, from: "src/geef_records.hrl")
|
defrecord Geef.Object, Record.extract(:geef_object, from: "src/geef_records.hrl") do
|
||||||
|
|
||||||
defmodule Geef.Object do
|
def lookup(repo, id) do
|
||||||
|
|
||||||
def lookup(repo, id), do: :geef_obj.lookup(repo, id)
|
|
||||||
def lookup!(repo, id) do
|
|
||||||
case :geef_obj.lookup(repo, id) do
|
case :geef_obj.lookup(repo, id) do
|
||||||
|
{:ok, obj} ->
|
||||||
|
{:ok, Geef.Object.new obj}
|
||||||
|
error ->
|
||||||
|
error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def lookup!(repo, id) do
|
||||||
|
case lookup(repo, id) do
|
||||||
{:ok, obj} ->
|
{:ok, obj} ->
|
||||||
obj
|
obj
|
||||||
{:error, err} ->
|
{:error, err} ->
|
||||||
@@ -12,7 +18,4 @@ defmodule Geef.Object do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
def lookup(repo, id, type), do: :geef_obj.lookup(repo, id, type)
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,9 +1,15 @@
|
|||||||
defrecord :geef_reference, Record.extract(:geef_reference, from: "src/geef_records.hrl")
|
defrecord Geef.Reference, Record.extract(:geef_reference, from: "src/geef_records.hrl") do
|
||||||
|
|
||||||
defmodule Geef.Reference do
|
|
||||||
alias Geef.Repository
|
alias Geef.Repository
|
||||||
|
|
||||||
def lookup(repo, name), do: :geef_ref.lookup(repo, name)
|
def lookup(repo, name) do
|
||||||
|
case :geef_ref.lookup(repo, name) do
|
||||||
|
{:ok, ref} ->
|
||||||
|
{:ok, Geef.Reference.new ref}
|
||||||
|
error ->
|
||||||
|
error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def lookup!(repo, name) do
|
def lookup!(repo, name) do
|
||||||
case lookup(repo, name) do
|
case lookup(repo, name) do
|
||||||
{:ok, ref} ->
|
{:ok, ref} ->
|
||||||
@@ -13,9 +19,17 @@ defmodule Geef.Reference do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def resolve(ref), do: :geef_ref.resolve(ref)
|
def resolve(ref = Geef.Reference[]) do
|
||||||
def resolve!(ref) do
|
case :geef_ref.resolve(set_elem(ref, 0, :geef_reference)) do
|
||||||
case :geef_ref.resolve(ref) do
|
{:ok, ref} ->
|
||||||
|
{:ok, Geef.Reference.new ref}
|
||||||
|
error ->
|
||||||
|
error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def resolve!(ref = Geef.Reference[]) do
|
||||||
|
case resolve(ref) do
|
||||||
{:ok, resolved} ->
|
{:ok, resolved} ->
|
||||||
resolved
|
resolved
|
||||||
{:error, err} ->
|
{:error, err} ->
|
||||||
|
|||||||
20
lib/geef/tag.ex
Normal file
20
lib/geef/tag.ex
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
defmodule Geef.Tag do
|
||||||
|
alias Geef.Object
|
||||||
|
|
||||||
|
def peel(tag = Object[type: :tag]) do
|
||||||
|
case :geef_tag.peel(set_elem(tag, 0, :geef_object)) do
|
||||||
|
{:ok, peeled} ->
|
||||||
|
{:ok, Object.new peeled}
|
||||||
|
error ->
|
||||||
|
error
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def peel!(tag = Object[type: :tag]) do
|
||||||
|
case peel(tag) do
|
||||||
|
{:ok, peeled} -> peeled
|
||||||
|
{:error, err} -> raise err
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user