key_tools v0.4.1 KeyTools
Provides common functions for coercing a Map or List.
Summary
Functions
Deeply converts all string keys within the given Map or List to atoms
Deeply converts all snake_cased keys within the given Map or List to CamelCase
Deeply converts all snake_cased keys within the given Map or List to lowerCamelCase
Deeply converts all keys within the given Map or List to strings
Deeply converts all camelCased keys within the given Map or List to snake_case
Functions
Deeply converts all string keys within the given Map or List to atoms.
Examples
iex(1)> KeyTools.atomize_keys %{“data” => ["Hello", "World!"]} %{data: ["Hello", "World!"]}
iex(2)> KeyTools.atomize_keys [%{"nested_data" => %{"deep" => :stuff}}] [%{nested_data: %{deep: :stuff}}]
Deeply converts all snake_cased keys within the given Map or List to CamelCase.
Affects only keys; values will remain unchanged. Works on string and atom keys.
The same limitations detailed in the docs for Macro.camelize apply here,
so be careful if there is potential for non-standard characters within your keys.
Examples
iex(1)> KeyTools.camelize_keys %{“snake_key” => “is a snake”} %{“SnakeKey” => “is a snake”}
Deeply converts all snake_cased keys within the given Map or List to lowerCamelCase.
For full details see the docs for KeyTools.camelize_keys/1.
Examples
iex(1)> KeyTools.camelize_keys %{“snake_key” => “is a snake”}, true %{“snakeKey” => “is a snake”}
Deeply converts all keys within the given Map or List to strings.
Examples
iex(1)> stringify_keys %{atom_key: :atom_value} %{“atom_key” => :atom_value}
iex(2)> stringify_keys [%{atom_key: %{42 => [%{another_key: 23}]}}] [%{"atom_key" => %{"42" => [%{"another_key" => 23}]}}]
Deeply converts all camelCased keys within the given Map or List to snake_case.
Affects only keys; values will remain unchanged. Works on string and atom keys.
The same limitations detailed in the docs for Macro.underscore apply here,
so be careful if there is potential for non-standard characters within your keys.
Examples
iex(1)> KeyTools.underscore_keys %{“scumbagKey” => “is a camel”} %{“scumbag_key” => “is a camel”}
iex(2)> KeyTools.underscore_keys [%{"nestedKeys" => %{"greatSuccess" => ":)"}}] [%{"nested_keys" => %{"great_success" => ":)"}}]