exercism-elixir/german-sysadmin/lib/username.ex
2022-02-03 12:03:31 -04:00

20 lines
357 B
Elixir

defmodule Username do
@spec sanitize(charlist()) :: charlist()
def sanitize(''), do: ''
def sanitize([ch | rest]) do
convert(ch) ++ sanitize(rest)
end
defp convert(ch) do
case ch do
ch when ch in ?a..?z -> [ch]
?_ -> '_'
-> 'ae'
-> 'oe'
-> 'ue'
-> 'ss'
_ -> ''
end
end
end