Dotenvy.Transformer (Dotenvy v0.2.0) View Source
This module provides function for converting string values to specific Elixir data types.
These conversions were designed to operate on system environment variables which are always stored as string binaries.
Link to this section Summary
Functions
Converts strings into Elixir data types with support for nil-able values.
Link to this section Functions
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 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