Dotenvy.Transformer.to
to
, go back to Dotenvy.Transformer module for more information.
Converts strings into Elixir data types with support for nil-able values.
Each type determines how to interpret the incoming string as well as how to
interpret an empty string. E.g. when the type
is :integer
, an empty string
is considered a 0
.
Use a ?
suffix when an empty string should be considered nil
(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
.: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 on 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:string?
- empty strings will be considerednil
.:string!
- as above, but an empty string will raise.
Examples
iex> to("debug", :atom)
:debug
iex> to("", :boolean)
false
iex> to("", :boolean?)
nil
iex> to("5432", :integer)
5432