View Source Moar.Atom (Moar v1.62.0)
Atom-related functions.
Summary
Functions
Given an atom, returns the atom. Given a string, converts it into an atom, converting non-alphanumeric characters
into underscores (via Moar.String.slug/2
).
Given a list of strings, returns :ok
if all values have a corresponding atom that already exists.
Otherwise, it returns an error tuple with a list of strings that don't have corresponding atoms.
Given a string, returns true
if a corresponding atom has been previously defined. Otherwise, returns false
.
Converts a string to an atom (via String.to_atom/1
), and returns atoms unchanged.
Converts a string to an existing atom (via String.to_existing_atom/1
), and returns atoms unchanged.
Converts an atom to a string (via Atom.to_string/1
), and returns strings unchanged.
Functions
Given an atom, returns the atom. Given a string, converts it into an atom, converting non-alphanumeric characters
into underscores (via Moar.String.slug/2
).
Examples
iex> Moar.Atom.atomize(:my_atom)
:my_atom
iex> Moar.Atom.atomize("my-atom")
:my_atom
Given a list of strings, returns :ok
if all values have a corresponding atom that already exists.
Otherwise, it returns an error tuple with a list of strings that don't have corresponding atoms.
Any atom included in the argument will be considered an existing atom.
Examples
iex> :existing_atom
iex> Moar.Atom.ensure_existing_atoms(["existing_atom", :another_existing_atom])
:ok
iex> :existing_atom
iex> Moar.Atom.ensure_existing_atoms(["existing_atom", :another_existing_atom, "some_nonexisting_atom"])
{:error, ["some_nonexisting_atom"]}
Given a string, returns true
if a corresponding atom has been previously defined. Otherwise, returns false
.
Given an atom, returns true
.
Examples
iex> :existing_atom
iex> Moar.Atom.existing_atom?("existing_atom")
true
iex> Moar.Atom.existing_atom?(:another_existing_atom)
true
iex> Moar.Atom.existing_atom?("some_nonexisting_atom")
false
Converts a string to an atom (via String.to_atom/1
), and returns atoms unchanged.
Useful when you aren't sure ahead of time whether you have a string or an atom.
Examples
iex> Moar.Atom.from_string("foo")
:foo
iex> Moar.Atom.from_string(:bar)
:bar
iex> Moar.Atom.from_string(nil)
** (ArgumentError) Unable to convert nil into an atom
Converts a string to an existing atom (via String.to_existing_atom/1
), and returns atoms unchanged.
Useful when you aren't sure ahead of time whether you have a string or an atom.
Examples
iex> Moar.Atom.to_existing_atom("foo")
:foo
iex> assert_raise ArgumentError, fn ->
...> Moar.Atom.to_existing_atom("sadfasfsfasf")
...> end
iex> Moar.Atom.to_existing_atom(:baz)
:baz
iex> Moar.Atom.to_existing_atom(nil)
nil
Converts an atom to a string (via Atom.to_string/1
), and returns strings unchanged.
Useful when you aren't sure ahead of time whether you have a string or an atom.
Examples
iex> Moar.Atom.to_string("foo")
"foo"
iex> Moar.Atom.to_string(:bar)
"bar"
iex> Moar.Atom.to_string(nil)
** (ArgumentError) Unable to convert nil into a string