add Geef.Config module for Elixir

This commit is contained in:
Ramon Snir
2015-07-18 14:24:15 +03:00
committed by Carlos Martín Nieto
parent 8c39463095
commit 01254f2f90
6 changed files with 76 additions and 9 deletions

View File

@@ -2,17 +2,20 @@ defmodule Geef do
defmacro __using__(_) do
quote do
alias Geef.Repository
alias Geef.Blob
alias Geef.Commit
alias Geef.Config
alias Geef.Index
alias Geef.Index.Tree
alias Geef.Object
alias Geef.Odb
alias Geef.Oid
alias Geef.Reference
alias Geef.Object
alias Geef.Commit
alias Geef.Tree
alias Geef.TreeEntry
alias Geef.Blob
alias Geef.Tag
alias Geef.Repository
alias Geef.Signature
alias Geef.Tree
alias Geef.Tag
alias Geef.TreeEntry
end
end

25
lib/geef/config.ex Normal file
View File

@@ -0,0 +1,25 @@
defmodule Geef.Config do
import Geef
alias Geef.Repository
def stop(config), do: :geef_config.stop(config)
def open(repo) when is_pid(repo), do: Repository.config(repo)
def open(path), do: :geef_config.open(path)
def open!(arg), do: open(arg) |> assert_ok
def set(config, key, value) do
:geef_config.set(config, make_config_key(key), value)
end
def get_bool(config, key) do
:geef_config.get_bool(config, make_config_key(key))
end
def get_string(config, key) do
:geef_config.get_string(config, make_config_key(key))
end
defp make_config_key(key) when is_binary(key), do: String.to_char_list(key)
defp make_config_key(key), do: key
end

View File

@@ -15,7 +15,9 @@ defmodule Geef.Repository do
def discover(path), do: :geef_repo.discover(path)
def bare?(repo), do: :geef_repo.is_bare(repo)
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 reference_names(repo), do: :geef_repo.references(repo)
end