Add basic configuration management module.

This commit is contained in:
lain 2018-09-08 14:01:00 +02:00 committed by William Pitcock
parent 27a06bd440
commit 9b77030d3c
2 changed files with 25 additions and 0 deletions

15
lib/pleroma/config.ex Normal file
View file

@ -0,0 +1,15 @@
defmodule Pleroma.Config do
use Agent
def start_link(initial) do
Agent.start_link(fn -> initial end, name: __MODULE__)
end
def get(path) do
Agent.get(__MODULE__, Kernel, :get_in, [path])
end
def put(path, value) do
Agent.update(__MODULE__, Kernel, :put_in, [path, value])
end
end

10
test/config_test.exs Normal file
View file

@ -0,0 +1,10 @@
defmodule Pleroma.ConfigTest do
use Pleroma.DataCase
alias Pleroma.Config
test "get returns the item at the path if there is one" do
Config.put([:instance, :name], "Plemora")
assert Config.get([:instance, :name]) == "Plemora"
assert Config.get([:unknown]) == nil
end
end