Skip to content

Commit

Permalink
added WithXxx methods
Browse files Browse the repository at this point in the history
  • Loading branch information
MarvinJWendt committed Aug 20, 2023
1 parent 09c645b commit 88573d8
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
2 changes: 1 addition & 1 deletion ci/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ func main() {
os.WriteFile("./docs/docs/putils.md", []byte(putilsReadme), 0600)
})

do("Geneating Printers Table", currentLevel, func(currentLevel int) {
do("Geneating printers Table", currentLevel, func(currentLevel int) {
// get features located in "_examples/*"
files, _ := os.ReadDir("./_examples/")

Expand Down
24 changes: 18 additions & 6 deletions multi_live_printer.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
)

var DefaultMultiPrinter = MultiPrinter{
Printers: []LivePrinter{},
printers: []LivePrinter{},
Writer: os.Stdout,
UpdateDelay: time.Millisecond * 200,

Expand All @@ -20,19 +20,31 @@ var DefaultMultiPrinter = MultiPrinter{

type MultiPrinter struct {
IsActive bool
Printers []LivePrinter
Writer io.Writer
UpdateDelay time.Duration

buffers []*bytes.Buffer
area AreaPrinter
printers []LivePrinter
buffers []*bytes.Buffer
area AreaPrinter
}

// SetWriter sets the writer for the AreaPrinter.
func (p *MultiPrinter) SetWriter(writer io.Writer) {
p.Writer = writer
}

// WithWriter returns a fork of the MultiPrinter with a new writer.
func (p MultiPrinter) WithWriter(writer io.Writer) *MultiPrinter {
p.Writer = writer
return &p
}

// WithUpdateDelay returns a fork of the MultiPrinter with a new update delay.
func (p MultiPrinter) WithUpdateDelay(delay time.Duration) *MultiPrinter {
p.UpdateDelay = delay
return &p
}

func (p *MultiPrinter) NewWriter() io.Writer {
buf := bytes.NewBufferString("")
p.buffers = append(p.buffers, buf)
Expand Down Expand Up @@ -64,7 +76,7 @@ func (p *MultiPrinter) getString() string {

func (p *MultiPrinter) Start() (*MultiPrinter, error) {
p.IsActive = true
for _, printer := range p.Printers {
for _, printer := range p.printers {
printer.GenericStart()
}

Expand All @@ -83,7 +95,7 @@ func (p *MultiPrinter) Start() (*MultiPrinter, error) {

func (p *MultiPrinter) Stop() (*MultiPrinter, error) {
p.IsActive = false
for _, printer := range p.Printers {
for _, printer := range p.printers {
printer.GenericStop()
}
time.Sleep(time.Millisecond * 20)
Expand Down

0 comments on commit 88573d8

Please sign in to comment.