ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - jongirard/unique_names_generator: A Unique Names Generator built in Elixir
A Unique Names Generator built in Elixir. Contribute to jongirard/unique_names_generator development by creating an account on GitHub.
Visit Site

GitHub - jongirard/unique_names_generator: A Unique Names Generator built in Elixir

GitHub - jongirard/unique_names_generator: A Unique Names Generator built in Elixir

Elixir CI

UniqueNamesGenerator

Unique Names Generator is an Elixir package for generating random and unique names. Generation utilizes PRNG (pseudo random number generation) for either fully random or seeded name generation. It comes with a list of various dictionaries out of the box, but you can also provide custom ones. Inspired by the great "Unique Names Generator" available on NPM by Andrea Sonny.

API Documentation built with ExDoc can be found at https://hexdocs.pm/unique_names_generator.

Installation

The package can be installed from Hex by adding unique_names_generator to your list of dependencies in mix.exs:

def deps do
  [
    {:unique_names_generator, "~> 0.2.0"}
  ]
end

Then run mix deps.get.

Usage

In a nutshell, you can begin generating randon names with UniqueNamesGenerator by simply specifying a list of one or more dictionaries via generate/2. Available dictionary types are t:UniqueNamesGenerator.Impl.Dictionaries.dictionaries/0.

UniqueNamesGenerator.generate([:adjectives, :animals])
# => Generates ex: "dramatic_limpet"

UniqueNamesGenerator.generate([:adjectives, :colors, :animals])
# => Generates ex: "tremendous_brown_cat"

UniqueNamesGenerator.generate([:adjectives, :names, :numbers])
# => Generates ex: "doubtful_wanda_979"

To use custom dictionaries, simply include your list of strings as part of the dictionaries list:

drinks = ["Sprite", "Coca-Cola", "Juice", "Tea"]
UniqueNamesGenerator.generate([:colors, drinks])
# => Generates ex: "cyan_sprite"

Config options

UniqueNamesGenerator can be used with either the default provided config (%{seperator: "_", style: :lowercase }) or by specifying any of your own configuration options for seeding, seperator and style. See the options type, t:UniqueNamesGenerator.Impl.Dictionaries.options/0, for more details on possible options.

UniqueNamesGenerator.generate([:colors, :animals], %{ style: :capital, separator: " " })
# => Generates ex: "Lavender Marlin"

Seeded Generation

A seed can be used to deterministically generate a name. As long as the provided seed is the same, then the generated name will also always be the same. Simply provide a string or integer in the options config map of the seed key, ie; %{ seed: "hello" }.

(Usecase example: generate a username for an authenticated user based on UUID. Ex: 03bf0706-b7e9-33b8-aee5-c6142a816478 will always generate the name "brown_dooku_247" when used together with the colors/star_wars/numbers dictionaries).

UniqueNamesGenerator.generate([:colors, :star_wars, :numbers], %{ seed: "03bf0706-b7e9-33b8-aee5-c6142a816478" })
# => Seed "03bf0706-b7e9-33b8-aee5-c6142a816478" always generates: "brown_dooku_247"

License

This project is licensed under the MIT License - see the LICENSE file for details.

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory