NLdoc.Test.UUIDGenerator (NLdoc.Spec v3.1.1)
View SourceThis module provides a UUID generator for testing purposes. All UUIDs are valid v4 UUIDs, but are created sequentially so they are not random.
Example:
iex> generator = NLdoc.Test.UUIDGenerator.new()
iex> NLdoc.Test.UUIDGenerator.generate(generator)
"facade00-0000-4000-a000-000000000000"
iex> NLdoc.Test.UUIDGenerator.generate(generator)
"facade00-0000-4000-a000-000000000001"
iex> NLdoc.Test.UUIDGenerator.generate(generator)
"facade00-0000-4000-a000-000000000002"
iex> NLdoc.Test.UUIDGenerator.generate(generator)
"facade00-0000-4000-a000-000000000003"
Calling the generate/1
function without a generator will return the same UUID each time.
iex> NLdoc.Test.UUIDGenerator.generate(nil)
"facade00-0000-4000-a000-000000000000"
iex> NLdoc.Test.UUIDGenerator.generate(nil)
"facade00-0000-4000-a000-000000000000"
Inspiration for this module's implementation taken from: https://elixirforum.com/t/implementing-a-counter-aka-how-to-keep-state-in-a-closure/17056/2