diff --git a/CHANGELOG.md b/CHANGELOG.md index e1d7c98..80e3768 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,5 @@ # Changelog -### [0.2.0] - 2025-03-14 - -- Add `IncrementalFormat`* Generators -- Add `Slug`* Generators -- Add `WithOriginalSlug`* Options -- Change signature of `Generator` function - -Note that this last change **is** a breaking change from 0.0.3, but only for custom Generators. - ## [0.0.3] - 2025-03-11 ### Features diff --git a/generators.go b/generators.go index 4b98284..e258716 100644 --- a/generators.go +++ b/generators.go @@ -2,7 +2,6 @@ package nomino import ( "errors" - "fmt" "strconv" "time" @@ -106,56 +105,26 @@ func Incremental() Generator { return IncrementalWithStartAndStep(0, 1) } -// IncrementalFormat generates a name that is a series of integers starting at 0, formatted with Printf -// This is mostly likely useful with a format like "%02d" -func IncrementalFormat(format string) Generator { - return IncrementalFormatWithStartAndStep(0, 1, format) -} - // IncrementalWithStart generates a name that is a series of integers starting at the specified number func IncrementalWithStart(start int) Generator { return IncrementalWithStartAndStep(start, 1) } -// IncrementalFormatWithStart generates a name that is a series of integers starting at the specified number, formatted with Printf -func IncrementalFormatWithStart(start int, format string) Generator { - return IncrementalFormatWithStartAndStep(start, 1, format) -} - // IncrementalWithStep generates a name that is a series of integers, starting at 0, and increasing the specified number each time func IncrementalWithStep(step int) Generator { return IncrementalWithStartAndStep(0, step) } -// IncrementalFormatWithStep generates a name that is a series of integers, starting at 0, and increasing the specified number each time, -// formatted with Printf -func IncrementalFormatWithStep(step int, format string) Generator { - return IncrementalFormatWithStartAndStep(0, step, format) -} - -func incrementalHelper(start, step int, cb func(int) string) Generator { +// InrementalWithStartAndStep generates a name that is a series of integers, starting at the specified number, and increasing the specified step each time +func IncrementalWithStartAndStep(start, step int) Generator { next := start return func(*Config) (string, error) { - out := cb(next) + out := strconv.Itoa(next) next += step return out, nil } } -// InrementalWithStartAndStep generates a name that is a series of integers, starting at the specified number, -// and increasing the specified step each time -func IncrementalWithStartAndStep(start, step int) Generator { - return incrementalHelper(start, step, strconv.Itoa) -} - -// IncrementalFormatWithStartAndStep generates a name that is a series of integers, starting at the specified number, -// and increasing the specified step each time, formatted with Printf -func IncrementalFormatWithStartAndStep(start, step int, format string) Generator { - return incrementalHelper(start, step, func(i int) string { - return fmt.Sprintf(format, i) - }) -} - // ErrMissingOriginal is the error returned by Slug if there is no filename var ErrMissingOriginal = errors.New("missing original filename") diff --git a/generators_examples_test.go b/generators_examples_test.go index 0275877..bb9b4a8 100644 --- a/generators_examples_test.go +++ b/generators_examples_test.go @@ -91,61 +91,6 @@ func ExampleIncrementalWithStartAndStep() { // foo_46.txt } -func ExampleIncrementalFormat() { - conf := NewConfig( - WithPrefix("foo"), - WithGenerator(IncrementalFormat("%03d")), - ) - - str, _ := Make(conf) - fmt.Println(str) - - str, _ = Make(conf) - fmt.Println(str) - - str, _ = Make(conf) - fmt.Println(str) - - // Output: - // foo_000.txt - // foo_001.txt - // foo_002.txt -} - -func ExampleIncrementalFormatWithStart() { - conf := NewConfig( - WithPrefix("foo"), - WithGenerator(IncrementalFormatWithStart(9, "%02d")), - ) - - str, _ := Make(conf) - fmt.Println(str) - - str, _ = Make(conf) - fmt.Println(str) - - // Output: - // foo_09.txt - // foo_10.txt -} - -func ExampleIncrementalFormatWithStep() { - conf := NewConfig( - WithPrefix("foo"), - WithGenerator(IncrementalFormatWithStep(10, "%02d")), - ) - - str, _ := Make(conf) - fmt.Println(str) - - str, _ = Make(conf) - fmt.Println(str) - - // Output: - // foo_00.txt - // foo_10.txt -} - func ExampleSlug() { conf := NewConfig(WithGenerator(Slug()), WithOriginal("My name is Jimmy")) str, _ := Make(conf)