mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-12-23 00:26:30 +00:00
Pleroma.Config.delete/1
This commit is contained in:
parent
52ce368562
commit
253da275bd
2 changed files with 29 additions and 0 deletions
|
@ -39,4 +39,18 @@ defmodule Pleroma.Config do
|
|||
def put(key, value) do
|
||||
Application.put_env(:pleroma, key, value)
|
||||
end
|
||||
|
||||
def delete([key]), do: delete(key)
|
||||
|
||||
def delete([parent_key | keys]) do
|
||||
{_, parent} =
|
||||
Application.get_env(:pleroma, parent_key)
|
||||
|> get_and_update_in(keys, fn _ -> :pop end)
|
||||
|
||||
Application.put_env(:pleroma, parent_key, parent)
|
||||
end
|
||||
|
||||
def delete(key) do
|
||||
Application.delete_env(:pleroma, key)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -53,4 +53,19 @@ defmodule Pleroma.ConfigTest do
|
|||
assert Pleroma.Config.get([:instance, :config_test]) == true
|
||||
assert Pleroma.Config.get([:instance, :config_nested_test, :x]) == true
|
||||
end
|
||||
|
||||
test "delete/1 with a key" do
|
||||
Pleroma.Config.put([:delete_me], :delete_me)
|
||||
Pleroma.Config.delete([:delete_me])
|
||||
assert Pleroma.Config.get([:delete_me]) == nil
|
||||
end
|
||||
|
||||
test "delete/2 with a list of keys" do
|
||||
Pleroma.Config.put([:delete_me], hello: "world", world: "Hello")
|
||||
Pleroma.Config.delete([:delete_me, :world])
|
||||
assert Pleroma.Config.get([:delete_me]) == [hello: "world"]
|
||||
Pleroma.Config.put([:delete_me, :delete_me], hello: "world", world: "Hello")
|
||||
Pleroma.Config.delete([:delete_me, :delete_me, :world])
|
||||
assert Pleroma.Config.get([:delete_me, :delete_me]) == [hello: "world"]
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue