summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-04-13 14:25:15 -0500
committerMark Felder <feld@feld.me>2021-04-13 14:39:57 -0500
commitc3b8c77967b0c42f93286f864236b7d6f1471c13 (patch)
tree3ec1423b70206aa571502a019bc562283eb09172
parent861f1928526930eeb78f79c4840c69cee5c2f215 (diff)
Improve string_to_elixir_types/1 with guards
-rw-r--r--lib/pleroma/config_db.ex8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/pleroma/config_db.ex b/lib/pleroma/config_db.ex
index 03905c06b..eeeb026c1 100644
--- a/lib/pleroma/config_db.ex
+++ b/lib/pleroma/config_db.ex
@@ -327,7 +327,7 @@ defmodule Pleroma.ConfigDB do
@spec string_to_elixir_types(String.t()) ::
atom() | Regex.t() | module() | String.t() | no_return()
- def string_to_elixir_types("~r" <> _pattern = regex) do
+ def string_to_elixir_types("~r" <> _pattern = regex) when is_binary(regex) do
pattern =
~r/^~r(?'delimiter'[\/|"'([{<]{1})(?'pattern'.+)[\/|"')\]}>]{1}(?'modifier'[uismxfU]*)/u
@@ -341,9 +341,9 @@ defmodule Pleroma.ConfigDB do
end
end
- def string_to_elixir_types(":" <> atom), do: String.to_atom(atom)
+ def string_to_elixir_types(":" <> atom) when is_binary(atom), do: String.to_atom(atom)
- def string_to_elixir_types(value) do
+ def string_to_elixir_types(value) when is_binary(value) do
if module_name?(value) do
String.to_existing_atom("Elixir." <> value)
else
@@ -351,6 +351,8 @@ defmodule Pleroma.ConfigDB do
end
end
+ def string_to_elixir_types(value) when is_atom(value), do: value
+
defp parse_host("localhost"), do: :localhost
defp parse_host(host) do