Moar.Term (Moar v3.2.0)

View Source

Blank/present functions for terms.

A term is considered present when it is not blank.

A term is considered blank when:

  • it is nil
  • it is false
  • it is a string, and its length after being trimmed is 0
  • it is an empty list
  • it is an empty map

Summary

Functions

Returns true if the term is blank, nil, or empty.

Returns the value if it is present (via present?), or else returns the default value.

Returns true if the term is not blank, nil, or empty.

Returns present_value when term is present (via present?), and blank_value when term is blank. If present_value and/or blank_value are functions, they are called with term as their argument.

Functions

blank?(s)

@spec blank?(any()) :: boolean()

Returns true if the term is blank, nil, or empty.

iex> Moar.Term.blank?(nil)
true

iex> Moar.Term.blank?("   ")
true

iex> Moar.Term.blank?([])
true

iex> Moar.Term.blank?(%{})
true

presence(term, default \\ nil)

@spec presence(any(), any()) :: any()

Returns the value if it is present (via present?), or else returns the default value.

iex> Moar.Term.presence(20, 100)
20

iex> Moar.Term.presence(nil, 100)
100

present?(term)

@spec present?(any()) :: boolean()

Returns true if the term is not blank, nil, or empty.

iex> Moar.Term.present?(1)
true

iex> Moar.Term.present?([1])
true

iex> Moar.Term.present?(%{a: 1})
true

iex> Moar.Term.present?("1")
true

when_present(term, present_value, blank_value)

@spec when_present(any(), any(), any()) :: any()

Returns present_value when term is present (via present?), and blank_value when term is blank. If present_value and/or blank_value are functions, they are called with term as their argument.

iex> Moar.Term.when_present(20, "continue", "value missing")
"continue"

iex> Moar.Term.when_present(nil, "continue", "value missing")
"value missing"

iex> Moar.Term.when_present(20, fn value -> value * 2 end, "value missing")
40

iex> Moar.Term.when_present(nil, "continue", fn value -> "expected a number, got: #{inspect(value)}" end)
"expected a number, got: nil"