Dotenvy.Transformer.to
to, go back to Dotenvy.Transformer module for more information.
Specs
Converts strings into Elixir data types with support for nil-able values.
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.: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.
Examples
iex> to("debug", :atom)
:debug
iex> to("", :boolean)
false
iex> to("", :boolean?)
nil
iex> to("5432", :integer)
5432