namegenerator

package module
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 2, 2024 License: Apache-2.0 Imports: 4 Imported by: 1

README

namegenerator

Coverage Status Go Report Card Go Reference GitHub GitHub go.mod Go version GitHub repo size Maintainability Continuous Integration

NameGenerator is a Golang package that provides a simple yet powerful tool for generating human-readable and pronounceable random names. The names are generated by namegenerator.py from https://www.cs.cmu.edu/ dataset.

Installation

go get github.com/0x6flab/namegenerator

Usage

package main

import (
    "fmt"

    "github.com/0x6flab/namegenerator"
)

func main() {
    generator := namegenerator.NewGenerator()

    // Generate a random name
    name := generator.Generate()

    // Print the name
    fmt.Println(name)
}

Examples

See examples directory for more examples.

License

This project is licensed under the Apache-2.0 LICENSE - see the LICENSE file for details.

Documentation

Overview

Package namegenerator provides a simple way to generate random names.

Example to generate general names:

package main

import (

	"fmt"

	"github.com/0x6flab/namegenerator"

)

func main() {
	generator := namegenerator.NewGenerator()
	name := generator.Generate()
	fmt.Println(name)

	names := generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithGender(namegenerator.Male)
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithGender(namegenerator.Female)
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithGender(namegenerator.NonBinary)
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithPrefix("Dr. ")
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithSuffix(" Jr.")
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithPrefix("Dr. ").WithSuffix(" Jr.")
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)

	generator = namegenerator.NewGenerator().WithGender(namegenerator.Male).WithPrefix("Dr. ").WithSuffix(" Jr.")
	name = generator.Generate()
	fmt.Println(name)

	names = generator.GenerateNames(10)
	fmt.Println(names)
}

Index

Constants

This section is empty.

Variables

View Source
var (
	// FamilyNames is a list of family names
	FamilyNames = []string{}/* 13479 elements not displayed */

	// FemaleNames is a list of female names
	FemaleNames = []string{}/* 4999 elements not displayed */

	// MaleNames is a list of male names
	MaleNames = []string{}/* 2943 elements not displayed */

	// GeneralNames is a list of general names
	GeneralNames = []string{}/* 58254 elements not displayed */

)

Functions

This section is empty.

Types

type Gender added in v1.2.0

type Gender uint8
const (
	Male Gender = iota
	Female
	NonBinary
)

type NameGenerator

type NameGenerator interface {
	// Generate generates a name based on the gender.
	//
	// Example:
	//  generator := namegenerator.NewGenerator()
	//  name := generator.Generate()
	//  fmt.Println(name)
	// Output:
	//  `John-Smith`
	Generate() string

	// GenerateMultiple generates a list of names.
	//
	// Example:
	//  generator := namegenerator.NewGenerator()
	//  names := generator.GenerateMultiple(10)
	//  fmt.Println(names)
	// Output:
	//  `[Dryke-Monroe Scarface-Lesway Shelden-Corsale Marcus-Ivett Victor-Nesrallah Merril-Gulick Leonardo-Lindler Maurits-Lias Rawley-Connor Elvis-Khouderchah]`
	GenerateMultiple(count int) []string

	// WithGender generates a name based on the gender.
	//
	// Example:
	//  generator := namegenerator.NewGenerator().WithGender(namegenerator.Male)
	//  name := generator.Generate()
	//  fmt.Println(name)
	// Output:
	//  `John-Smith`
	WithGender(gender Gender) NameGenerator

	// WithPrefix generates a name with a prefix.
	//
	// Example:
	//  generator := namegenerator.NewGenerator().WithPrefix("Mr. ")
	//  name := generator.Generate()
	//  fmt.Println(name)
	// Output:
	//  `Mr. John-Smith`
	WithPrefix(prefix string) NameGenerator

	// WithSuffix generates a name with a suffix.
	//
	// Example:
	//  generator := namegenerator.NewGenerator().WithSuffix("@gmail.com")
	//  name := generator.Generate()
	//  fmt.Println(name)
	// Output:
	//  `John-Smith@gmail.com`
	WithSuffix(suffix string) NameGenerator
}

NameGenerator is an interface for generating names.

func NewGenerator added in v1.3.0

func NewGenerator() NameGenerator

NewGenerator returns a new NameGenerator.

Example to generate general names:

generator := namegenerator.NewGenerator()

Example to generate male names:

generator := namegenerator.NewGenerator().WithGender(namegenerator.Male)

Example to generate female names:

generator := namegenerator.NewGenerator().WithGender(namegenerator.Female)

Example to generate non-binary names:

generator := namegenerator.NewGenerator().WithGender(namegenerator.NonBinary)

Example to generate names with a prefix:

generator := namegenerator.NewGenerator().WithPrefix("Mr. ")

Example to generate names with a suffix:

generator := namegenerator.NewGenerator().WithSuffix("@gmail.com")

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL