From c29360dbf709a88fccb227769c7105acba48a949 Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Tue, 14 Jun 2022 15:27:35 +0200 Subject: [PATCH 1/3] moved `NewLettersFromString` and `NewLettersFromStringWithStyle` to `putils` --- bigtext_printer.go | 21 --------------------- deprecated.go | 28 ++++++++++++++++++++++++++++ putils/new_letters_from_string.go | 28 ++++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 21 deletions(-) create mode 100644 deprecated.go create mode 100644 putils/new_letters_from_string.go diff --git a/bigtext_printer.go b/bigtext_printer.go index 68c7bb379..ef5daabe0 100644 --- a/bigtext_printer.go +++ b/bigtext_printer.go @@ -14,27 +14,6 @@ import ( // Letters is a slice of Letter. type Letters []Letter -// NewLettersFromString creates a Letters object from a string, which is prefilled with the LetterStyle from ThemeDefault. -// You can override the ThemeDefault LetterStyle if you want to. -func NewLettersFromString(text string) Letters { - return NewLettersFromStringWithStyle(text, &ThemeDefault.LetterStyle) -} - -// NewLettersFromStringWithStyle creates a Letters object from a string and applies a Style to it. -func NewLettersFromStringWithStyle(text string, style *Style) Letters { - s := strings.Split(text, "") - l := Letters{} - - for _, s2 := range s { - l = append(l, Letter{ - String: s2, - Style: style, - }) - } - - return l -} - // NewLettersFromStringWithRGB creates a Letters object from a string and applies an RGB color to it (overwrites style). func NewLettersFromStringWithRGB(text string, rgb RGB) Letters { s := strings.Split(text, "") diff --git a/deprecated.go b/deprecated.go new file mode 100644 index 000000000..24c0daa73 --- /dev/null +++ b/deprecated.go @@ -0,0 +1,28 @@ +package pterm + +import "strings" + +// NewLettersFromString creates a Letters object from a string, which is prefilled with the LetterStyle from ThemeDefault. +// You can override the ThemeDefault LetterStyle if you want to. +// +// Deprecated: use putils.NewLettersFromString instead. +func NewLettersFromString(text string) Letters { + return NewLettersFromStringWithStyle(text, &ThemeDefault.LetterStyle) +} + +// NewLettersFromStringWithStyle creates a Letters object from a string and applies a Style to it. +// +// Deprecated: use putils.NewLettersFromStringWithStyle instead. +func NewLettersFromStringWithStyle(text string, style *Style) Letters { + s := strings.Split(text, "") + l := Letters{} + + for _, s2 := range s { + l = append(l, Letter{ + String: s2, + Style: style, + }) + } + + return l +} diff --git a/putils/new_letters_from_string.go b/putils/new_letters_from_string.go new file mode 100644 index 000000000..98aab697e --- /dev/null +++ b/putils/new_letters_from_string.go @@ -0,0 +1,28 @@ +package putils + +import ( + "strings" + + "github.com/pterm/pterm" +) + +// NewLettersFromString creates a Letters object from a string, which is prefilled with the LetterStyle from ThemeDefault. +// You can override the ThemeDefault LetterStyle if you want to. +func NewLettersFromString(text string) pterm.Letters { + return NewLettersFromStringWithStyle(text, &pterm.ThemeDefault.LetterStyle) +} + +// NewLettersFromStringWithStyle creates a Letters object from a string and applies a Style to it. +func NewLettersFromStringWithStyle(text string, style *pterm.Style) pterm.Letters { + s := strings.Split(text, "") + l := pterm.Letters{} + + for _, s2 := range s { + l = append(l, pterm.Letter{ + String: s2, + Style: style, + }) + } + + return l +} From d107216732e203995e1d43521e221ed08c439fe1 Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Tue, 14 Jun 2022 15:30:38 +0200 Subject: [PATCH 2/3] moved `NewLettersFromStringWithRGB` to `putils` --- _examples/bigtext/demo/main.go | 13 ++++++++----- bigtext_printer.go | 16 ---------------- deprecated.go | 18 ++++++++++++++++++ putils/new_letters_from_string.go | 16 ++++++++++++++++ 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/_examples/bigtext/demo/main.go b/_examples/bigtext/demo/main.go index eff801c1d..2250a8f0e 100644 --- a/_examples/bigtext/demo/main.go +++ b/_examples/bigtext/demo/main.go @@ -1,20 +1,23 @@ package main -import "github.com/pterm/pterm" +import ( + "github.com/pterm/pterm" + "github.com/pterm/pterm/putils" +) func main() { // Print a large text with the LetterStyle from the standard theme. // Useful for title screens. - pterm.DefaultBigText.WithLetters(pterm.NewLettersFromString("PTerm")).Render() + pterm.DefaultBigText.WithLetters(putils.NewLettersFromString("PTerm")).Render() // Print a large text with differently colored letters. pterm.DefaultBigText.WithLetters( - pterm.NewLettersFromStringWithStyle("P", pterm.NewStyle(pterm.FgCyan)), - pterm.NewLettersFromStringWithStyle("Term", pterm.NewStyle(pterm.FgLightMagenta))). + putils.NewLettersFromStringWithStyle("P", pterm.NewStyle(pterm.FgCyan)), + putils.NewLettersFromStringWithStyle("Term", pterm.NewStyle(pterm.FgLightMagenta))). Render() // NewLettersFromStringWithRGB can be used to create a large text with a specific RGB color. pterm.DefaultBigText.WithLetters( - pterm.NewLettersFromStringWithRGB("PTerm", pterm.NewRGB(255, 215, 0))). + putils.NewLettersFromStringWithRGB("PTerm", pterm.NewRGB(255, 215, 0))). Render() } diff --git a/bigtext_printer.go b/bigtext_printer.go index ef5daabe0..d80d96eeb 100644 --- a/bigtext_printer.go +++ b/bigtext_printer.go @@ -14,22 +14,6 @@ import ( // Letters is a slice of Letter. type Letters []Letter -// NewLettersFromStringWithRGB creates a Letters object from a string and applies an RGB color to it (overwrites style). -func NewLettersFromStringWithRGB(text string, rgb RGB) Letters { - s := strings.Split(text, "") - l := Letters{} - - for _, s2 := range s { - l = append(l, Letter{ - String: s2, - Style: &Style{}, - RGB: rgb, - }) - } - - return l -} - // Letter is an object, which holds a string and a specific Style for it. type Letter struct { String string diff --git a/deprecated.go b/deprecated.go index 24c0daa73..61a4f8977 100644 --- a/deprecated.go +++ b/deprecated.go @@ -26,3 +26,21 @@ func NewLettersFromStringWithStyle(text string, style *Style) Letters { return l } + +// NewLettersFromStringWithRGB creates a Letters object from a string and applies an RGB color to it (overwrites style). +// +// Deprecated: use putils.NewLettersFromStringWithRGB instead. +func NewLettersFromStringWithRGB(text string, rgb RGB) Letters { + s := strings.Split(text, "") + l := Letters{} + + for _, s2 := range s { + l = append(l, Letter{ + String: s2, + Style: &Style{}, + RGB: rgb, + }) + } + + return l +} diff --git a/putils/new_letters_from_string.go b/putils/new_letters_from_string.go index 98aab697e..e454636b7 100644 --- a/putils/new_letters_from_string.go +++ b/putils/new_letters_from_string.go @@ -26,3 +26,19 @@ func NewLettersFromStringWithStyle(text string, style *pterm.Style) pterm.Letter return l } + +// NewLettersFromStringWithRGB creates a Letters object from a string and applies an RGB color to it (overwrites style). +func NewLettersFromStringWithRGB(text string, rgb pterm.RGB) pterm.Letters { + s := strings.Split(text, "") + l := pterm.Letters{} + + for _, s2 := range s { + l = append(l, pterm.Letter{ + String: s2, + Style: &pterm.Style{}, + RGB: rgb, + }) + } + + return l +} From 6eb9db9396676f81c4fe2a5912cc937f4edcc5b0 Mon Sep 17 00:00:00 2001 From: Marvin Wendt Date: Tue, 14 Jun 2022 15:32:08 +0200 Subject: [PATCH 3/3] use newer functions in demo --- _examples/demo/demo/main.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_examples/demo/demo/main.go b/_examples/demo/demo/main.go index 862f8e921..739c4c29b 100644 --- a/_examples/demo/demo/main.go +++ b/_examples/demo/demo/main.go @@ -9,6 +9,7 @@ import ( "time" "github.com/pterm/pterm" + "github.com/pterm/pterm/putils" ) // Speed the demo up, by setting this flag. @@ -215,8 +216,8 @@ func setup() { func introScreen() { ptermLogo, _ := pterm.DefaultBigText.WithLetters( - pterm.NewLettersFromStringWithStyle("P", pterm.NewStyle(pterm.FgLightCyan)), - pterm.NewLettersFromStringWithStyle("Term", pterm.NewStyle(pterm.FgLightMagenta))). + putils.NewLettersFromStringWithStyle("P", pterm.NewStyle(pterm.FgLightCyan)), + putils.NewLettersFromStringWithStyle("Term", pterm.NewStyle(pterm.FgLightMagenta))). Srender() pterm.DefaultCenter.Print(ptermLogo)