Improve string_to_elixir_types/1 with guards
This commit is contained in:
parent
861f192852
commit
c3b8c77967
|
@ -327,7 +327,7 @@ def to_elixir_types(entity), do: entity
|
||||||
|
|
||||||
@spec string_to_elixir_types(String.t()) ::
|
@spec string_to_elixir_types(String.t()) ::
|
||||||
atom() | Regex.t() | module() | String.t() | no_return()
|
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 =
|
pattern =
|
||||||
~r/^~r(?'delimiter'[\/|"'([{<]{1})(?'pattern'.+)[\/|"')\]}>]{1}(?'modifier'[uismxfU]*)/u
|
~r/^~r(?'delimiter'[\/|"'([{<]{1})(?'pattern'.+)[\/|"')\]}>]{1}(?'modifier'[uismxfU]*)/u
|
||||||
|
|
||||||
|
@ -341,9 +341,9 @@ def string_to_elixir_types("~r" <> _pattern = regex) do
|
||||||
end
|
end
|
||||||
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
|
if module_name?(value) do
|
||||||
String.to_existing_atom("Elixir." <> value)
|
String.to_existing_atom("Elixir." <> value)
|
||||||
else
|
else
|
||||||
|
@ -351,6 +351,8 @@ def string_to_elixir_types(value) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def string_to_elixir_types(value) when is_atom(value), do: value
|
||||||
|
|
||||||
defp parse_host("localhost"), do: :localhost
|
defp parse_host("localhost"), do: :localhost
|
||||||
|
|
||||||
defp parse_host(host) do
|
defp parse_host(host) do
|
||||||
|
|
Loading…
Reference in New Issue