add sentence generation function and create README.md

This commit is contained in:
Pedro Pérez 2024-11-23 11:10:48 +01:00
parent 74b1b5f9e4
commit dfe6b90f5e
2 changed files with 63 additions and 0 deletions

51
README.md Normal file
View File

@ -0,0 +1,51 @@
# Gopher Toolbox
Es una librería donde se concentra el código _boilerplate_ que se usan en
distintos proyectos. Incluyen lo siguiente:
- Implementación controladores de bases de datos:
- [PGX Pool](github.com/jackc/pgx/v5)
- MySQL
- Utilidades para conversión de tipos [pgtype](github.com/jackc/pgx/v5/pgtype) a
tipos de Golang.
- Generación de datos aleatorios para pruebas unitarias, similar a librería
[Faker](https://faker.readthedocs.io/en/master/) de Python.
```go
MaleName() string
FemaleName() string
Name() string
LastName() string
Email(beforeAt string) string
Int(min, max int64) int64
Float(min, max float64) float64
Bool() bool
Chars(min, max int) string
AllChars(min, max int) string
AllCharsOrEmpty(min, max int) string
AllCharsOrNil(min, max int) *string
NumericString(length int) string
Sentence(min, max int) string
```
- Conversión de ficheros Excel a tipos estructurados. Se le pasa el tipo del
_struct_ a la función `Convert[T any](bookPath, sheetName string)` y te
devolverá los datos del tipo `dataExcel []T`.
- Constantes para los manejadores HTTP.
- Utilidades varias
```go
CorrectTimezone(timeStamp time.Time) time.Time
GetBool(value string) bool
LogAndReturnError(err error, message string) error
GetBoolFromString(s string) bool
Slugify(s string) string
```

View File

@ -102,3 +102,15 @@ func NumericString(length int) string {
return sb.String()
}
func Sentence(min, max int) string {
var sb strings.Builder
k := len(lowercaseAlphabet)
for i := 0; i < rand.Intn(max-min+1)+min; i++ {
c := lowercaseAlphabet[rand.Intn(k)]
sb.WriteByte(c)
}
return sb.String()
}