Files
learngo/logparser/v5/pipe/chartreport.go
2019-10-30 19:41:13 +03:00

63 lines
1.2 KiB
Go

// Copyright © 2018 Inanc Gumus
// Learn Go Programming Course
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
//
// For more tutorials : https://learngoprogramming.com
// In-person training : https://www.linkedin.com/in/inancgumus/
// Follow me on twitter: https://twitter.com/inancgumus
package pipe
/*
// You need to run:
// go get -u github.com/wcharczuk/go-chart
// Chart renders a chart.
type Chart struct {
Title string
Width, Height int
w io.Writer
}
// NewChartReport returns a Chart report generator.
func NewChartReport(w io.Writer) *Chart {
return &Chart{w: w}
}
// Consume generates a chart report.
func (c *Chart) Consume(records Iterator) error {
w := os.Stdout
donut := chart.DonutChart{
Title: c.Title,
TitleStyle: chart.Style{
FontSize: 35,
Show: true,
FontColor: chart.ColorAlternateGreen,
},
Width: c.Width,
Height: c.Height,
}
err := records.Each(func(r Record) error {
v := chart.Value{
Label: r.Domain + r.Page + ": " + strconv.Itoa(r.Visits),
Value: float64(r.Visits),
Style: chart.Style{
FontSize: 14,
},
}
donut.Values = append(donut.Values, v)
return nil
})
if err != nil {
return err
}
return donut.Render(chart.SVG, w)
}
*/