View Source Mahaul.Helpers (Mahaul v0.3.0)
Basic helpers for parsing and validating the system environment variables.
Link to this section Summary
Functions
:str
iex> Mahaul.Helpers.parse("some value", :str)
{:ok, "some value"}
:num
iex> Mahaul.Helpers.parse("10", :num)
{:ok, 10.0}
iex> Mahaul.Helpers.parse("10.2345", :num)
{:ok, 10.2345}
iex> Mahaul.Helpers.parse("some value", :num)
{:error, nil}
:int
iex> Mahaul.Helpers.parse("10", :int)
{:ok, 10}
iex> Mahaul.Helpers.parse("10.2345", :int)
{:error, nil}
iex> Mahaul.Helpers.parse("some value", :int)
{:error, nil}
:bool
iex> Mahaul.Helpers.parse(true, :bool)
{:ok, true}
iex> Mahaul.Helpers.parse(false, :bool)
{:ok, false}
iex> Mahaul.Helpers.parse("true", :bool)
{:ok, true}
iex> Mahaul.Helpers.parse("false", :bool)
{:ok, false}
iex> Mahaul.Helpers.parse("1", :bool)
{:ok, true}
iex> Mahaul.Helpers.parse("0", :bool)
{:ok, false}
:port
iex> Mahaul.Helpers.parse("1", :port)
{:ok, 1}
iex> Mahaul.Helpers.parse("65535", :port)
{:ok, 65535}
iex> Mahaul.Helpers.parse("8080", :port)
{:ok, 8080}
iex> Mahaul.Helpers.parse("some value", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("-1", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("0", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("65536", :port)
{:error, nil}
:host
iex> Mahaul.Helpers.parse("//localhost", :host)
{:ok, "//localhost"}
iex> Mahaul.Helpers.parse("//domain.com", :host)
{:ok, "//domain.com"}
iex> Mahaul.Helpers.parse("//192.168.0.1", :host)
{:ok, "//192.168.0.1"}
iex> Mahaul.Helpers.parse("ftp://localhost", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https://domain.com", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https://domain.com/something", :host)
{:error, nil}
:uri
iex> Mahaul.Helpers.parse("ftp://localhost", :uri)
{:ok, "ftp://localhost"}
iex> Mahaul.Helpers.parse("https://domain.com", :uri)
{:ok, "https://domain.com"}
iex> Mahaul.Helpers.parse("postgresql://user:pass@localhost:5432/dev_db", :uri)
{:ok, "postgresql://user:pass@localhost:5432/dev_db"}
iex> Mahaul.Helpers.parse("//localhost", :uri)
{:error, nil}
iex> Mahaul.Helpers.parse("//domain.com", :uri)
{:error, nil}
iex> Mahaul.Helpers.parse("//192.168.0.1", :uri)
{:error, nil}
Link to this section Types
Link to this section Functions
@spec get_env(atom(), config_type()) :: error_type() | success_type()
@spec get_normalized_val({atom(), config_type()}) :: {atom(), error_type() | success_type()}
@spec parse(binary(), var_type()) :: error_type() | success_type()
:str
iex> Mahaul.Helpers.parse("some value", :str)
{:ok, "some value"}
:num
iex> Mahaul.Helpers.parse("10", :num)
{:ok, 10.0}
iex> Mahaul.Helpers.parse("10.2345", :num)
{:ok, 10.2345}
iex> Mahaul.Helpers.parse("some value", :num)
{:error, nil}
:int
iex> Mahaul.Helpers.parse("10", :int)
{:ok, 10}
iex> Mahaul.Helpers.parse("10.2345", :int)
{:error, nil}
iex> Mahaul.Helpers.parse("some value", :int)
{:error, nil}
:bool
iex> Mahaul.Helpers.parse(true, :bool)
{:ok, true}
iex> Mahaul.Helpers.parse(false, :bool)
{:ok, false}
iex> Mahaul.Helpers.parse("true", :bool)
{:ok, true}
iex> Mahaul.Helpers.parse("false", :bool)
{:ok, false}
iex> Mahaul.Helpers.parse("1", :bool)
{:ok, true}
iex> Mahaul.Helpers.parse("0", :bool)
{:ok, false}
:port
iex> Mahaul.Helpers.parse("1", :port)
{:ok, 1}
iex> Mahaul.Helpers.parse("65535", :port)
{:ok, 65535}
iex> Mahaul.Helpers.parse("8080", :port)
{:ok, 8080}
iex> Mahaul.Helpers.parse("some value", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("-1", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("0", :port)
{:error, nil}
iex> Mahaul.Helpers.parse("65536", :port)
{:error, nil}
:host
iex> Mahaul.Helpers.parse("//localhost", :host)
{:ok, "//localhost"}
iex> Mahaul.Helpers.parse("//domain.com", :host)
{:ok, "//domain.com"}
iex> Mahaul.Helpers.parse("//192.168.0.1", :host)
{:ok, "//192.168.0.1"}
iex> Mahaul.Helpers.parse("ftp://localhost", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https://domain.com", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https", :host)
{:error, nil}
iex> Mahaul.Helpers.parse("https://domain.com/something", :host)
{:error, nil}
:uri
iex> Mahaul.Helpers.parse("ftp://localhost", :uri)
{:ok, "ftp://localhost"}
iex> Mahaul.Helpers.parse("https://domain.com", :uri)
{:ok, "https://domain.com"}
iex> Mahaul.Helpers.parse("postgresql://user:pass@localhost:5432/dev_db", :uri)
{:ok, "postgresql://user:pass@localhost:5432/dev_db"}
iex> Mahaul.Helpers.parse("//localhost", :uri)
{:error, nil}
iex> Mahaul.Helpers.parse("//domain.com", :uri)
{:error, nil}
iex> Mahaul.Helpers.parse("//192.168.0.1", :uri)
{:error, nil}
@spec parse_all(config_type()) :: parsed_vars_type()
@spec validate(parsed_vars_type()) :: {:ok} | {:error, binary()}
@spec validate!(parsed_vars_type()) :: nil
@spec validate_opts!(keyword()) :: :ok