add Geef.Revwalk module for Elixir
This commit is contained in:
committed by
Carlos Martín Nieto
parent
01254f2f90
commit
79f89bcd41
@@ -12,6 +12,7 @@ defmodule Geef do
|
||||
alias Geef.Oid
|
||||
alias Geef.Reference
|
||||
alias Geef.Repository
|
||||
alias Geef.Revwalk
|
||||
alias Geef.Signature
|
||||
alias Geef.Tree
|
||||
alias Geef.Tag
|
||||
|
||||
@@ -18,6 +18,7 @@ defmodule Geef.Repository do
|
||||
def gitdir(repo), do: :geef_repo.path(repo)
|
||||
def workdir(repo), do: :geef_repo.workdir(repo)
|
||||
def config(repo), do: :geef_repo.config(repo)
|
||||
def revwalk(repo), do: :geef_repo.revwalk(repo)
|
||||
|
||||
def reference_names(repo), do: :geef_repo.references(repo)
|
||||
end
|
||||
|
||||
32
lib/geef/revwalk.ex
Normal file
32
lib/geef/revwalk.ex
Normal file
@@ -0,0 +1,32 @@
|
||||
defmodule Geef.Revwalk do
|
||||
import Geef
|
||||
alias Geef.Object
|
||||
|
||||
def stop(walk), do: :geef_revwalk.stop(walk)
|
||||
|
||||
def open(repo) when is_pid(repo), do: Repository.revwalk(repo)
|
||||
def open!(arg), do: open(arg) |> assert_ok
|
||||
|
||||
def push(walk, %Object{type: :commit, id: commit}), do: push(walk, commit)
|
||||
def push(walk, commit), do: :geef_revwalk.push(walk, commit)
|
||||
|
||||
def hide(walk, %Object{type: :commit, id: commit}), do: hide(walk, commit)
|
||||
def hide(walk, commit), do: :geef_revwalk.hide(walk, commit)
|
||||
|
||||
def simplify_first_parent(walk), do: :geef_revwalk.simplify_first_parent(walk)
|
||||
|
||||
def sorting(walk, flags \\ [])
|
||||
def sorting(walk, flags) when is_list(flags) do
|
||||
flags = Enum.map(flags, &compile_sorting_flag/1)
|
||||
:geef_revwalk.sorting(walk, flags)
|
||||
end
|
||||
def sorting(walk, flag), do: sorting(walk, [flag])
|
||||
|
||||
def next(walk), do: :geef_revwalk.next(walk)
|
||||
|
||||
def reset(walk), do: :geef_revwalk.reset(walk)
|
||||
|
||||
defp compile_sorting_flag(:topological_sort), do: :toposort
|
||||
defp compile_sorting_flag(:time_sort), do: :timesort
|
||||
defp compile_sorting_flag(:reverse_sort), do: :reversesort
|
||||
end
|
||||
Reference in New Issue
Block a user