lib/modkit/snake_case.ex
defmodule Modkit.SnakeCase do
def to_snake(segment) when is_binary(segment) when is_atom(segment) do
segment |> Macro.underscore() |> no_double_underscores()
end
defp no_double_underscores(segment) do
if String.contains?(segment, "__") do
segment |> String.replace("__", "_") |> no_double_underscores()
else
segment
end
end
end