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
Source

Summary

next()

Generate the default sequence (:default)

next(formatter)

Generate a named sequence

next(name, formatter)

Generate and format a named sequence

Functions

next()

Generate the default sequence (:default)

Source
next(formatter)

Generate a named sequence

Source
next(name, formatter)

Generate and format a named sequence

Source