Skip to content

Commit 52a1fd8

Browse files
committed
don't use the new config API for persist
1 parent ae3abab commit 52a1fd8

File tree

2 files changed

+32
-41
lines changed

2 files changed

+32
-41
lines changed

lib/provider.ex

Lines changed: 30 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -101,54 +101,46 @@ defmodule Toml.Provider do
101101
end
102102
end
103103

104-
if has_config_api? do
105-
defp persist(config, keyword) when is_list(keyword) do
106-
config = Config.Reader.merge(config, keyword)
107-
Application.put_all_env(config, persistent: true)
108-
config
109-
end
110-
else
111-
defp persist(config, keyword) when is_list(keyword) do
112-
# For each app
113-
for {app, app_config} <- keyword do
114-
# Get base config
115-
base = Application.get_all_env(app)
116-
base = deep_merge(base, Keyword.get(config, app, []))
117-
# Merge this app's TOML config over the base config
118-
merged = deep_merge(base, app_config)
119-
# Persist key/value pairs for this app
120-
for {k, v} <- merged do
121-
Application.put_env(app, k, v, persistent: true)
122-
end
123-
124-
# Return merged config
125-
{app, merged}
104+
defp persist(config, keyword) when is_list(keyword) do
105+
# For each app
106+
for {app, app_config} <- keyword do
107+
# Get base config
108+
base = Application.get_all_env(app)
109+
base = deep_merge(base, Keyword.get(config, app, []))
110+
# Merge this app's TOML config over the base config
111+
merged = deep_merge(base, app_config)
112+
# Persist key/value pairs for this app
113+
for {k, v} <- merged do
114+
Application.put_env(app, k, v, persistent: true)
126115
end
127-
end
128116

129-
defp deep_merge(a, b) when is_list(a) and is_list(b) do
130-
if Keyword.keyword?(a) and Keyword.keyword?(b) do
131-
Keyword.merge(a, b, &deep_merge/3)
132-
else
133-
b
134-
end
117+
# Return merged config
118+
{app, merged}
135119
end
120+
end
136121

137-
defp deep_merge(_k, a, b) when is_list(a) and is_list(b) do
138-
if Keyword.keyword?(a) and Keyword.keyword?(b) do
139-
Keyword.merge(a, b, &deep_merge/3)
140-
else
141-
b
142-
end
122+
defp deep_merge(a, b) when is_list(a) and is_list(b) do
123+
if Keyword.keyword?(a) and Keyword.keyword?(b) do
124+
Keyword.merge(a, b, &deep_merge/3)
125+
else
126+
b
143127
end
128+
end
144129

145-
defp deep_merge(_k, a, b) when is_map(a) and is_map(b) do
146-
Map.merge(a, b, &deep_merge/3)
130+
defp deep_merge(_k, a, b) when is_list(a) and is_list(b) do
131+
if Keyword.keyword?(a) and Keyword.keyword?(b) do
132+
Keyword.merge(a, b, &deep_merge/3)
133+
else
134+
b
147135
end
136+
end
148137

149-
defp deep_merge(_k, _a, b), do: b
138+
defp deep_merge(_k, a, b) when is_map(a) and is_map(b) do
139+
Map.merge(a, b, &deep_merge/3)
150140
end
151141

142+
defp deep_merge(_k, _a, b), do: b
143+
152144
# At the top level, convert the map to a keyword list of keyword lists
153145
# Keys with no children (i.e. keys which are not tables) are dropped
154146
defp to_keyword(map) when is_map(map) do

test/provider_test.exs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,10 @@ defmodule Toml.Test.ProviderTest do
4141

4242
test "deep merges to ensure existing config is preserved" do
4343
file = Path.join([__DIR__, "fixtures", "provider.toml"])
44-
Application.put_all_env(toml: [nested: [deep: "success!"]])
44+
put_all_env(toml: [nested: [deep: "success!"]])
4545

46-
opts = Toml.Provider.init(path: file, keys: :atoms!)
46+
Toml.Provider.init(path: file, keys: :atoms!)
4747

48-
assert Toml.Provider.is_distillery_env?()
4948
assert [deep: "success!", foo: "bar"] = Application.get_env(:toml, :nested)
5049
end
5150

0 commit comments

Comments
 (0)