Blacksmith.Sequence
Generate an series of incrementing, unique, numbers starting with 0.
Example
iex> Sequence.next
0
iex> Sequence.next
1
Pass an atom to name different sequences:
iex> Sequence.next(:foo)
0
iex> Sequence.next(:foo)
1
iex> Sequence.next(:not_foo)
0
A function to format the number can be passed in as well:
iex> Sequence.next(&"default#{&1}@example.com")
"default2@example.com"
iex> Sequence.next(:email, &"email#{&1}@example.com")
"email0@example.com"
This is extremely useful when your Forge model’s persistance layer has unique validations:
defmodule Forge do
use Blacksmith
register :user,
name: Faker.name,
email: Sequence.next(:email, &"email#{&1}@example.com")
end
Summary↑
next() | Generate the default sequence (:default) |
next(formatter) | Generate a named sequence |
next(name, formatter) | Generate and format a named sequence |
Functions
Generate the default sequence (:default)
Generate a named sequence
Generate and format a named sequence