Current section
Files
Jump to
Current section
Files
lib/impl/snake_caser/atom.ex
defimpl Digger.SnakeCaser, for: Atom do
alias Digger.SnakeCaser
alias Digger.Opts.SnakeCaser, as: Opts
def snake_case(atom, opts) do
opts = Opts.set_options(opts)
atom
|> to_snake(opts)
end
defp to_snake(atom, [type: :key, key_transform: :snake, value_transform: _] = opts) do
atom
|> to_string
|> SnakeCaser.snake_case(opts)
|> String.to_atom()
end
defp to_snake(atom, [type: :value, key_transform: _, value_transform: :snake] = opts) do
atom
|> to_string
|> SnakeCaser.snake_case(opts)
|> String.to_atom()
end
defp to_snake(atom, _opts), do: atom
end