Bonfire.Social.FeedFilters.AtomOrStringList (Bonfire v0.9.12-social-beta.71)

View Source

Summary

Functions

Casts a value to a list of atoms or strings.

Dumps a list of atoms/strings for database storage.

Callback implementation for Ecto.Type.embed_as/1.

Callback implementation for Ecto.Type.equal?/2.

Loads a list of atoms/strings from database storage.

Callback implementation for Ecto.Type.type/0.

Functions

cast(values)

Casts a value to a list of atoms or strings.

Examples

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast([:atom1, :atom2])
{:ok, [:atom1, :atom2]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast(["string1", "string2"])
{:ok, [:string1, :string2]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast([%{id: "789"}, :atom3])
{:ok, ["789", :atom3]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast("single_string")
{:ok, [:single_string]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast(:single_atom)
{:ok, [:single_atom]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast(%{id: "object_id"})
{:ok, ["object_id"]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast([123])
:error

iex> Bonfire.Social.FeedFilters.AtomOrStringList.cast(123)
:error

dump(value)

Dumps a list of atoms/strings for database storage.

Examples

iex> Bonfire.Social.FeedFilters.AtomOrStringList.dump([:atom, "string"])
{:ok, ["atom", "string"]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.dump("not_a_list")
:error

embed_as(_)

Callback implementation for Ecto.Type.embed_as/1.

equal?(term1, term2)

Callback implementation for Ecto.Type.equal?/2.

load(value)

Loads a list of atoms/strings from database storage.

Examples

iex> Bonfire.Social.FeedFilters.AtomOrStringList.load(["item1", "existing_atom"])
{:ok, [:item1, :existing_atom]}

iex> Bonfire.Social.FeedFilters.AtomOrStringList.load("not_a_list")
:error

Note: Strings that match existing atoms will be converted to atoms.

type()

Callback implementation for Ecto.Type.type/0.