Erstes Commit
This commit is contained in:
33
internal/formatter/table.go
Normal file
33
internal/formatter/table.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package formatter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"strings"
|
||||
|
||||
"royalroadupdates/internal/royalroad"
|
||||
)
|
||||
|
||||
// PrintTable writes a plain-text aligned table of stories to w.
|
||||
func PrintTable(w io.Writer, stories []royalroad.Story) {
|
||||
if len(stories) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
nameHeader := "Story Name"
|
||||
updateHeader := "Last Update"
|
||||
|
||||
maxNameLen := len(nameHeader)
|
||||
for _, s := range stories {
|
||||
if l := len(s.Name); l > maxNameLen {
|
||||
maxNameLen = l
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Fprintf(w, "%-*s %s\n", maxNameLen, nameHeader, updateHeader)
|
||||
fmt.Fprintf(w, "%s %s\n", strings.Repeat("-", maxNameLen), strings.Repeat("-", len(updateHeader)))
|
||||
|
||||
for _, s := range stories {
|
||||
fmt.Fprintf(w, "%-*s %s\n", maxNameLen, s.Name, Relative(s.DateModified))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user