Handle non-list keys in Config.fetch/1
This commit is contained in:
parent
2299bfe4c1
commit
8c57a299b4
@ -32,6 +32,8 @@ defmodule Pleroma.Config do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def fetch(key) when is_atom(key), do: fetch([key])
|
||||||
|
|
||||||
def fetch([root_key | keys]) do
|
def fetch([root_key | keys]) do
|
||||||
Enum.reduce_while(keys, Application.fetch_env(:pleroma, root_key), fn
|
Enum.reduce_while(keys, Application.fetch_env(:pleroma, root_key), fn
|
||||||
key, {:ok, config} when is_map(config) or is_list(config) ->
|
key, {:ok, config} when is_map(config) or is_list(config) ->
|
||||||
|
@ -127,9 +127,11 @@ defmodule Pleroma.ConfigTest do
|
|||||||
Pleroma.Config.put([:ipsum], dolor: :sit)
|
Pleroma.Config.put([:ipsum], dolor: :sit)
|
||||||
|
|
||||||
assert Pleroma.Config.fetch([:lorem]) == {:ok, :ipsum}
|
assert Pleroma.Config.fetch([:lorem]) == {:ok, :ipsum}
|
||||||
|
assert Pleroma.Config.fetch(:lorem) == {:ok, :ipsum}
|
||||||
assert Pleroma.Config.fetch([:ipsum, :dolor]) == {:ok, :sit}
|
assert Pleroma.Config.fetch([:ipsum, :dolor]) == {:ok, :sit}
|
||||||
assert Pleroma.Config.fetch([:lorem, :ipsum]) == :error
|
assert Pleroma.Config.fetch([:lorem, :ipsum]) == :error
|
||||||
assert Pleroma.Config.fetch([:loremipsum]) == :error
|
assert Pleroma.Config.fetch([:loremipsum]) == :error
|
||||||
|
assert Pleroma.Config.fetch(:loremipsum) == :error
|
||||||
|
|
||||||
Pleroma.Config.delete([:lorem])
|
Pleroma.Config.delete([:lorem])
|
||||||
Pleroma.Config.delete([:ipsum])
|
Pleroma.Config.delete([:ipsum])
|
||||||
|
Loading…
Reference in New Issue
Block a user