Packages
moar
0.1.0
5.0.0
4.3.0
4.2.0
4.1.0
4.0.0
3.2.0
3.1.0
3.0.0
2.7.0
2.6.0
2.5.0
2.4.2
2.4.1
2.4.0
2.3.0
2.2.0
2.1.0
2.0.1
2.0.0
1.64.0
1.63.1
1.63.0
1.62.0
1.61.2
1.61.1
1.61.0
1.60.0
1.59.2
1.59.1
1.59.0
1.58.0
1.57.0
1.56.2
1.56.1
1.56.0
1.55.0
1.54.0
1.53.0
1.52.1
1.52.0
1.51.0
1.50.0
1.49.0
1.48.0
1.47.0
1.46.0
1.45.1
1.45.0
1.44.0
1.43.0
1.42.0
1.41.0
1.40.0
1.39.0
1.38.0
1.37.0
1.36.0
1.35.0
1.34.0
1.33.0
1.32.0
1.31.0
1.30.0
1.29.0
1.28.0
1.27.0
1.26.0
1.25.0
1.24.1
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.3
1.19.2
1.19.1
1.19.0
1.18.1
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.1
1.13.0
1.12.0
1.11.0
1.10.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.0
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.1.0
A dependency-free utility library containing 100+ useful functions.
Current section
Files
Jump to
Current section
Files
lib/term.ex
defmodule Moar.Term do
# @related [test](/test/term_test.exs)
@moduledoc "Extra functions for terms."
@doc "Returns true if the term is blank, nil, or empty"
@spec blank?(any()) :: boolean()
def blank?(nil), do: true
def blank?(s) when is_binary(s), do: s |> String.trim() |> String.length() == 0
def blank?([]), do: true
def blank?(list) when is_list(list), do: false
def blank?(m) when is_map(m), do: map_size(m) == 0
def blank?(true), do: false
def blank?(false), do: true
def blank?(_), do: false
@doc "Returns `value` unless it is blank, in which case it returns `default`"
@spec or_default(any(), any()) :: any()
def or_default(value, default), do: if(present?(value), do: value, else: default)
@doc "Returns true if the term is not blank, nil, or empty"
@spec present?(any()) :: boolean()
def present?(term), do: !blank?(term)
@doc "Returns the value if it is present (via `present?`), or else returns the default value"
@spec presence(any(), any()) :: any()
def presence(term, default \\ nil), do: if(present?(term), do: term, else: default)
end