Dotenvy.Transformer.to-exclamation-mark
to-exclamation-mark, go back to Dotenvy.Transformer module for more information.
Specs
Converts strings into Elixir data types with support for nil-able values. Raises on error.
Each type determines how to interpret the incoming string, e.g. when the type
is :integer, an empty string is considered a 0; when :integer? is the type,
and empty string is converted to nil.
Remember:
- Use a
?suffix when an empty string should be considerednil(a.k.a. a "nullable" value). - Use a
!suffix when an empty string is not allowed. Use this when values are required.
Types
The following types are supported:
:atom- converts to an atom. An empty string will be the atom:""(!).:atom?- converts to an atom. An empty string will be considerednil:atom!- converts to an atom. An empty string will raise.:boolean- "false", "0", or an empty string "" will be considered booleanfalse. Any other non-empty value is consideredtrue.:boolean?- as above, except an empty string will be considerednil:boolean!- as above, except an empty string will raise.:charlist- converts string to charlist.:charlist?- converts string to charlist. Empty string will be considerednil.:charlist!- as above, but an empty string will raise.:integer- converts a string to an integer. An empty string will be considered0.:integer?- as above, but an empty string will be considerednil.:integer!- as above, but an empty string will raise.:float- converts a string to an float. An empty string will be considered0.:float?- as above, but an empty string will be considerednil.:float!- as above, but an empty string will raise.:existing_atom- converts into an existing atom. Raises error if the atom does not exist.:existing_atom?- as above, but an empty string will be considerednil.:existing_atom!- as above, but an empty string will raise.:module- converts a string into an Elixir module name. Raises on error.:module?- as above, but an empty string will be considerednil.:module!- as above, but an empty string will raise.:string- no conversion (default):string?- empty strings will be considerednil.:string!- as above, but an empty string will raise.custom function - see below.
Custom Callback function
When you require more control over the transformation of your value than is possible with the types provided, you can provide an arity 1 function in place of the type.
Examples
iex> to!("debug", :atom)
:debug
iex> to!("", :boolean)
false
iex> to!("", :boolean?)
nil
iex> to!("5432", :integer)
5432
iex> to!("foo", fn val -> val <> "bar" end)
"foobar"