Current section
Files
Jump to
Current section
Files
lib/impl/upper_caser/string.ex
defimpl Digger.UpperCaser, for: BitString do
alias Digger.Opts.UpperCaser, as: Opts
def upcase_first(string, opts) do
opts = Opts.set_options(opts)
string
|> uppercase_first(opts)
end
defp uppercase_first(string, type: :key, key_transform: :upper, value_transform: _) do
remainder = String.slice(string, 1..-1)
string
|> String.first()
|> String.capitalize()
|> Kernel.<>(remainder)
end
defp uppercase_first(string, type: :value, key_transform: _, value_transform: :upper) do
remainder = String.slice(string, 1..-1)
string
|> String.first()
|> String.capitalize()
|> Kernel.<>(remainder)
end
defp uppercase_first(string, _), do: string
end