Skip to content

Commit

Permalink
♻️ Rename category attributes and name to be CitizenCategory
Browse files Browse the repository at this point in the history
  • Loading branch information
carloscasalar committed Dec 10, 2024
1 parent a250393 commit fc60153
Show file tree
Hide file tree
Showing 12 changed files with 50 additions and 50 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ func main() {
}

request := generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryAboveAverage).
CitizenCategory(generator.CitizenCategoryAboveAverage).
Experience(generator.ExperienceRookie).
Role(generator.RolePilot).
Gender(generator.GenderUnspecified).
Expand Down Expand Up @@ -151,7 +151,7 @@ func main() {

for _, gender := range generator.GenderValues() {
request := generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryExceptional).
CitizenCategory(generator.CitizenCategoryExceptional).
Experience(generator.ExperienceVeteran).
Role(generator.RoleLeader).
Gender(gender).
Expand Down Expand Up @@ -218,7 +218,7 @@ func main() {
role := pickRandomItem(generator.RoleValues())

request := generator.NewGenerateCharacterRequestBuilder().
Category(category).
CitizenCategory(category).
Experience(experience).
Role(role).
Gender(gender).
Expand Down
2 changes: 1 addition & 1 deletion cmd/generate-npc/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func main() {
role := readRole(opts)
gender := readGender(opts)
newCharacterRequest := generator.NewGenerateCharacterRequestBuilder().
Category(category).
CitizenCategory(category).
Experience(experience).
Role(role).
Gender(gender).
Expand Down
2 changes: 1 addition & 1 deletion examples/catalog-name-generator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func main() {
role := pickRandomItem(generator.RoleValues())

request := generator.NewGenerateCharacterRequestBuilder().
Category(category).
CitizenCategory(category).
Experience(experience).
Role(role).
Gender(gender).
Expand Down
2 changes: 1 addition & 1 deletion examples/custom-name-generator/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func main() {

for _, gender := range generator.GenderValues() {
request := generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryExceptional).
CitizenCategory(generator.CitizenCategoryExceptional).
Experience(generator.ExperienceVeteran).
Role(generator.RoleLeader).
Gender(gender).
Expand Down
2 changes: 1 addition & 1 deletion examples/generate-pilot/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func main() {
}

request := generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryAboveAverage).
CitizenCategory(generator.CitizenCategoryAboveAverage).
Experience(generator.ExperienceRookie).
Role(generator.RolePilot).
Gender(generator.GenderUnspecified).
Expand Down
10 changes: 5 additions & 5 deletions pkg/generator/character.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type Character struct {
firstName string
surname string
role Role
category CitizenCategory
citizenCategory CitizenCategory
experience Experience
skills []string
characteristics map[npc.Characteristic]int
Expand All @@ -31,8 +31,8 @@ func (c Character) Role() Role {
return c.role
}

func (c Character) Category() CitizenCategory {
return c.category
func (c Character) CitizenCategory() CitizenCategory {
return c.citizenCategory
}

func (c Character) Experience() Experience {
Expand All @@ -56,6 +56,6 @@ func (c Character) Characteristics() map[Characteristic]int {

// String returns a string representation of the character. It is prone to change so you should not rely on it.
func (c Character) String() string {
return fmt.Sprintf("Character{firstName: %v, surname: %v, role: %v, category: %v, experience: %v, skills: %v, characteristics: %v}",
c.firstName, c.surname, c.role, c.category, c.experience, c.skills, c.characteristics)
return fmt.Sprintf("Character{firstName: %v, surname: %v, role: %v, citizenCategory: %v, experience: %v, skills: %v, characteristics: %v}",
c.firstName, c.surname, c.role, c.citizenCategory, c.experience, c.skills, c.characteristics)
}
18 changes: 9 additions & 9 deletions pkg/generator/citizen_category.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,28 @@ package generator

import "github.com/carloscasalar/traveller-npc-generator/internal/npc"

//go:generate enumer -type=CitizenCategory -output=citizen_category_auto.go -trimprefix=Category -transform=snake
//go:generate enumer -type=CitizenCategory -output=citizen_category_auto.go -trimprefix=CitizenCategory -transform=snake

type CitizenCategory int

func (i CitizenCategory) toNpcCitizenCategory() npc.CitizenCategory {
switch i {
case CategoryBelowAverage:
case CitizenCategoryBelowAverage:
return npc.CategoryBelowAverage
case CategoryAverage:
case CitizenCategoryAverage:
return npc.CategoryAverage
case CategoryAboveAverage:
case CitizenCategoryAboveAverage:
return npc.CategoryAboveAverage
case CategoryExceptional:
case CitizenCategoryExceptional:
return npc.CategoryExceptional
default:
return npc.CitizenCategory(i)
}
}

const (
CategoryBelowAverage CitizenCategory = iota
CategoryAverage
CategoryAboveAverage
CategoryExceptional
CitizenCategoryBelowAverage CitizenCategory = iota
CitizenCategoryAverage
CitizenCategoryAboveAverage
CitizenCategoryExceptional
)
2 changes: 1 addition & 1 deletion pkg/generator/citizen_category_auto.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions pkg/generator/generate_character_request.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ import "errors"
//go:generate gonstructor -type=GenerateCharacterRequest -constructorTypes=builder -output=generate_character_request_auto.go

type GenerateCharacterRequest struct {
category CitizenCategory
experience Experience
role Role
gender Gender
citizenCategory CitizenCategory
experience Experience
role Role
gender Gender
}

func (r GenerateCharacterRequest) Validate() error {
if !r.category.IsACitizenCategory() {
return errors.New("invalid category")
if !r.citizenCategory.IsACitizenCategory() {
return errors.New("invalid citizen category")
}
if !r.experience.IsAExperience() {
return errors.New("invalid experience")
Expand Down
20 changes: 10 additions & 10 deletions pkg/generator/generate_character_request_auto.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pkg/generator/npc_generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ func (g *NpcGenerator) Generate(request GenerateCharacterRequest) (*Character, e
role := request.role.toNpcRole()
experience := request.experience.toNpcExperience()
skills := role.Skills(experience)
category := request.category.toNpcCitizenCategory()
category := request.citizenCategory.toNpcCitizenCategory()
characteristic := role.RandomCharacteristic(category)

return &Character{
firstName: firstName,
surname: surname,
role: request.role,
category: request.category,
citizenCategory: request.citizenCategory,
experience: request.experience,
skills: skills,
characteristics: characteristic,
Expand Down
20 changes: 10 additions & 10 deletions pkg/generator/npc_generator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func Test_resulting_character_should_have_same_category_experience_and_role_as_request(t *testing.T) {
request := generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryExceptional).
CitizenCategory(generator.CitizenCategoryExceptional).
Experience(generator.ExperienceRecruit).
Role(generator.RoleDiplomat).
Build()
Expand All @@ -21,7 +21,7 @@ func Test_resulting_character_should_have_same_category_experience_and_role_as_r
character, err := npcGenerator.Generate(*request)

require.NoError(t, err)
assert.Equal(t, generator.CategoryExceptional, character.Category())
assert.Equal(t, generator.CitizenCategoryExceptional, character.CitizenCategory())
assert.Equal(t, generator.ExperienceRecruit, character.Experience())
assert.Equal(t, generator.RoleDiplomat, character.Role())
}
Expand Down Expand Up @@ -91,16 +91,16 @@ func Test_number_of_skills_generated_for(t *testing.T) {
func Test_characteristic_array_for_citizen_category(t *testing.T) {
allCategories := generator.CitizenCategoryValues()
expectedCharacteristicArray := map[generator.CitizenCategory][]int{
generator.CategoryBelowAverage: {8, 7, 6, 6, 5, 4},
generator.CategoryAverage: {9, 8, 7, 7, 6, 5},
generator.CategoryAboveAverage: {10, 9, 8, 8, 7, 6},
generator.CategoryExceptional: {11, 10, 9, 9, 8, 7},
generator.CitizenCategoryBelowAverage: {8, 7, 6, 6, 5, 4},
generator.CitizenCategoryAverage: {9, 8, 7, 7, 6, 5},
generator.CitizenCategoryAboveAverage: {10, 9, 8, 8, 7, 6},
generator.CitizenCategoryExceptional: {11, 10, 9, 9, 8, 7},
}

for _, category := range allCategories {
t.Run(fmt.Sprintf("%v should be %v", category, expectedCharacteristicArray[category]), func(t *testing.T) {
request := generator.NewGenerateCharacterRequestBuilder().
Category(category).
CitizenCategory(category).
Build()

npcGenerator, _ := newGenerator()
Expand All @@ -115,14 +115,14 @@ func Test_characteristic_array_for_citizen_category(t *testing.T) {
func Test_when_category_is_invalid_it_returns_error(t *testing.T) {
nonValidCategory := generator.CitizenCategory(99)
request := generator.NewGenerateCharacterRequestBuilder().
Category(nonValidCategory).
CitizenCategory(nonValidCategory).
Build()

npcGenerator, _ := newGenerator()
_, err := npcGenerator.Generate(*request)

assert.Error(t, err)
assert.Equal(t, "invalid category", err.Error())
assert.Equal(t, "invalid citizen category", err.Error())
}

func Test_when_experience_is_invalid_it_returns_error(t *testing.T) {
Expand Down Expand Up @@ -180,7 +180,7 @@ func getSortedArray(characteristics map[generator.Characteristic]int) []int {

func exceptionalRecruitDiplomatRequest() *generator.GenerateCharacterRequest {
return generator.NewGenerateCharacterRequestBuilder().
Category(generator.CategoryExceptional).
CitizenCategory(generator.CitizenCategoryExceptional).
Experience(generator.ExperienceRecruit).
Role(generator.RoleDiplomat).
Build()
Expand Down

0 comments on commit fc60153

Please sign in to comment.