Packages

Converts data between common multiple-word identifier formats, such as snake case, kebab case, camel case and pascal case.

Current section

Files

Jump to
cozy_case lib cozy_case snake_case.ex
Raw

lib/cozy_case/snake_case.ex

defmodule CozyCase.SnakeCase do
@moduledoc false
@doc false
def convert(string) when is_binary(string) do
string
|> String.replace(~r/([A-Z]+)([A-Z][a-z])/, "\\1_\\2")
|> String.replace(~r/([a-z\d])([A-Z])/, "\\1_\\2")
|> String.replace(~r/-/, "_")
|> String.downcase()
end
end