Current section
Files
Jump to
Current section
Files
lib/string.ex
defmodule RapidNba.String do
@moduledoc false
def camelize(word, option \\ :lower) do
case Regex.split(~r/(?:^|[-_])|(?=[A-Z])/, to_string(word)) do
words ->
words
|> Enum.filter(&(&1 != ""))
|> camelize_list(option)
|> Enum.join()
end
end
defp camelize_list([], _), do: []
defp camelize_list([h | tail], :lower) do
[lowercase(h)] ++ camelize_list(tail, :upper)
end
defp camelize_list([h | tail], :upper) do
[capitalize(h)] ++ camelize_list(tail, :upper)
end
def capitalize(word), do: String.capitalize(word)
def lowercase(word), do: String.downcase(word)
end