harvest

package
v1.13.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckOptionalEnvVariables added in v1.12.0

func CheckOptionalEnvVariables() error

func CheckRequiredEnvVariables added in v1.12.0

func CheckRequiredEnvVariables() error

func DownloadAndOutputEntries added in v1.12.0

func DownloadAndOutputEntries(verboseFlag bool, outputFilename string) error

func Group

func Group(verboseFlag bool, inputFlag string, outputFlag string, skipUnknown bool) error

Types

type CSVFormatter added in v1.8.0

type CSVFormatter struct {
	Stats *Stats
}

func NewCSVFormatter added in v1.8.0

func NewCSVFormatter(stats *Stats) *CSVFormatter

func (*CSVFormatter) Output added in v1.8.0

func (f *CSVFormatter) Output()

type EntryMatcher added in v1.11.0

type EntryMatcher interface {
	Match(string) (bool, string)
}

type OutputFormat added in v1.8.0

type OutputFormat uint32
const (
	TextOutputFormat OutputFormat = iota
	CSVOutputFormat
)

type PatternEntryMatcher added in v1.11.0

type PatternEntryMatcher struct {
	// contains filtered or unexported fields
}

func NewPatternEntryMatcher added in v1.11.0

func NewPatternEntryMatcher(pattern string) (*PatternEntryMatcher, error)

func (*PatternEntryMatcher) Match added in v1.11.0

func (m *PatternEntryMatcher) Match(text string) (bool, string)

type Report added in v1.7.0

type Report struct {
	TimeEntries []*harvest.TimeEntry
	// contains filtered or unexported fields
}

func NewReport added in v1.7.0

func NewReport(timeEntries []*harvest.TimeEntry, matcher EntryMatcher, skipUnknown bool) Report

func (*Report) Run added in v1.7.0

func (r *Report) Run()

func (*Report) Stats added in v1.7.0

func (r *Report) Stats() *Stats

type ReportInterface added in v1.8.0

type ReportInterface interface {
	Output()
}

type Result added in v1.6.0

type Result struct {
	GroupedByTag map[string]float64
}

type Stats added in v1.7.0

type Stats struct {
	GroupedByTag map[string]float64
	// contains filtered or unexported fields
}

func NewStats added in v1.7.0

func NewStats(grouped_by_tags map[string]float64) *Stats

func (*Stats) PercentageForTag added in v1.7.0

func (s *Stats) PercentageForTag(tag string) float64

Returns percentage for total hours.

The hard part is to calculate percentage values so that the summed up percentages are not higher than 100%. See for example https://revs.runtime-revolution.com/getting-100-with-rounded-percentages-273ffa70252b Let's go with a simple solution that can calculate sum(percentages) > 100%.

func (*Stats) TotalHours added in v1.7.0

func (s *Stats) TotalHours() float64

type TagEntryMatcher added in v1.11.0

type TagEntryMatcher struct {
	// contains filtered or unexported fields
}

func NewTagEntryMatcher added in v1.11.0

func NewTagEntryMatcher(tags string) *TagEntryMatcher

func (*TagEntryMatcher) Match added in v1.11.0

func (m *TagEntryMatcher) Match(text string) (bool, string)

type TextFormatter added in v1.6.0

type TextFormatter struct {
	Stats *Stats
}

func NewTextFormatter added in v1.6.0

func NewTextFormatter(stats *Stats) *TextFormatter

func (*TextFormatter) Output added in v1.6.0

func (f *TextFormatter) Output()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL