Recase
helps you to convert a string from any case to any case.
Link: GitHub - wemake-services/recase: ♻ Convert strings to any case.
Why?
One can ask: “Why should I use recase when I can use built-in Macro module?”. But, you have to keep in mind that Macro’s functions are not suitable for general case usage:
Do not use it as a general mechanism for underscoring or camelizing strings as it does not support Unicode or characters that are not valid in Elixir identifiers.
And Recase
has even more cases!
Installation
def deps do
[{:recase, "~> 0.2"}]
end
Examples
Pascal
Pascal (or Upper) case uses mixed case with lower and upper cased characters. Separates words from each other with the upper case letters. Starts with upper case letter.
Recase.to_pascal("some-value") # => "SomeValue"
Recase.to_pascal("Some value") # => "SomeValue"
Camel
Camel case uses mixed case with lower and upper cased characters. Separates words from each other with the upper cased letters. Starts with lower case letter.
Recase.to_camel("some-value") # => "someValue"
Recase.to_camel("Some Value") # => "someValue"
Snake
Snake cases uses all lower case. Uses _ as a separator.
Recase.to_snake("someValue") # => "some_value"
Recase.to_snake("Some Value") # => "some_value"
Kebab
Kebab cases uses all lower case. Uses - as a separator.
Recase.to_kebab("someValue") # => "some-value"
Recase.to_kebab("Some Value") # => "some-value"
Constant
Constant case uses all upper case. Uses _ as a separator.
Recase.to_constant("SomeValue") # => "SOME_VALUE"
Recase.to_constant("some value") # => "SOME_VALUE"
Dot
Dot case uses all lower case similar to snake case. Uses . as a separator.
Recase.to_dot("SomeValue") # => "some.value"
Recase.to_dot("some value") # => "some.value"
Path
Path case preserves case, you can also provide a separator as the second argument.
Recase.to_path("SomeValue") # => "Some/Value"
Recase.to_path("some value", "\\") # => "some\\value"