Documentation
¶
Overview ¶
Package tabular implements a tabular data generator.
package main import ( "log" "os" "github.com/jbub/tabular" ) func main() { set := tabular.NewDataSet() set.AddHeader("firstname", "First name") set.AddHeader("lastname", "Last name") r1 := tabular.NewRow("Julia", "Roberts") r2 := tabular.NewRow("John", "Malkovich") err := set.Append(r1, r2) if err != nil { log.Fatal(err) } opts := &tabular.CSVOpts{ Comma: ';', UseCRLF: true, } csv := tabular.NewCSVWriter(opts) err = set.Write(csv, os.Stdout) if err != nil { log.Fatal(err) } }
Index ¶
- Variables
- type CSVOpts
- type CSVWriter
- type Dataset
- func (d *Dataset) AddHeader(key string, title string)
- func (d *Dataset) Append(rows ...*Row) error
- func (d *Dataset) Find(tag string) *Dataset
- func (d *Dataset) FindAll(tags ...string) *Dataset
- func (d *Dataset) FindAny(tags ...string) *Dataset
- func (d *Dataset) Get(idx int) (*Row, bool)
- func (d *Dataset) GetColValues(key string) []string
- func (d *Dataset) GetHeader(idx int) (*Header, bool)
- func (d *Dataset) GetIdxWidth(idx int) int
- func (d *Dataset) GetKeyWidth(key string) int
- func (d *Dataset) HasCol(key string) bool
- func (d *Dataset) HasHeaders() bool
- func (d *Dataset) HeaderCount() int
- func (d *Dataset) Headers() []*Header
- func (d *Dataset) Len() int
- func (d *Dataset) Rows() []*Row
- func (d *Dataset) Slice(start int, end int) *Dataset
- func (d *Dataset) Sort(key string, reverse bool) *Dataset
- func (d *Dataset) Write(dw Writer, w io.Writer) error
- type ErrHeadersRequired
- type ErrInvalidHeaderIndex
- type ErrInvalidRowWidth
- type HTMLOpts
- type HTMLWriter
- type Header
- type Headers
- type JSONOpts
- type JSONWriter
- type LatexOpts
- type LatexWriter
- type Row
- func (r *Row) Add(items ...string)
- func (r *Row) AddTag(tag string) bool
- func (r *Row) Get(idx int) string
- func (r *Row) HasAllTags(tags ...string) bool
- func (r *Row) HasAnyTags(tags ...string) bool
- func (r *Row) HasTag(tag string) bool
- func (r *Row) Items() []string
- func (r *Row) Len() int
- func (r *Row) Tags() []string
- type RowSorter
- type SQLOpts
- type SQLWriter
- type SetTagger
- type Tagger
- type Writer
- type XMLOpts
- type XMLWriter
- type YAMLOpts
- type YAMLWriter
Constants ¶
This section is empty.
Variables ¶
var ( // ErrEmptyDataset is returned when operations are applied to empty dataset. ErrEmptyDataset = errors.New("dataset is empty") )
Functions ¶
This section is empty.
Types ¶
type CSVWriter ¶
type CSVWriter struct {
// contains filtered or unexported fields
}
CSVWriter represents a CSV dataset writer.
func NewCSVWriter ¶
NewCSVWriter creates a new CSV dataset writer.
func (*CSVWriter) NeedsHeaders ¶
NeedsHeaders returns true if headers are required.
type Dataset ¶
type Dataset struct {
// contains filtered or unexported fields
}
Dataset represents a set of data.
func (*Dataset) GetColValues ¶
GetColValues returns values of given column.
func (*Dataset) GetIdxWidth ¶
GetIdxWidth returns maximum column width.
func (*Dataset) GetKeyWidth ¶
GetKeyWidth returns maximum column width.
func (*Dataset) HasHeaders ¶
HasHeaders returns true if headers was set.
type ErrHeadersRequired ¶
type ErrHeadersRequired struct {
// contains filtered or unexported fields
}
ErrHeadersRequired is error returned when writer is missing the headers.
func (ErrHeadersRequired) Error ¶
func (e ErrHeadersRequired) Error() string
type ErrInvalidHeaderIndex ¶
type ErrInvalidHeaderIndex struct {
// contains filtered or unexported fields
}
ErrInvalidHeaderIndex is error returned when writer is missing the headers.
func (ErrInvalidHeaderIndex) Error ¶
func (e ErrInvalidHeaderIndex) Error() string
type ErrInvalidRowWidth ¶
type ErrInvalidRowWidth struct {
// contains filtered or unexported fields
}
ErrInvalidRowWidth is error returned when adding new row with invalid width.
func (ErrInvalidRowWidth) Error ¶
func (e ErrInvalidRowWidth) Error() string
type HTMLOpts ¶
type HTMLOpts struct { Caption string Indent int TableClass string RowClass string HeadClass string DataClass string }
HTMLOpts represents options passed to the HTML writer.
type HTMLWriter ¶
type HTMLWriter struct {
// contains filtered or unexported fields
}
HTMLWriter represents a HTML dataset writer.
func NewHTMLWriter ¶
func NewHTMLWriter(opts *HTMLOpts) *HTMLWriter
NewHTMLWriter creates a new HTML dataset writer.
func (*HTMLWriter) NeedsHeaders ¶
func (wh *HTMLWriter) NeedsHeaders() bool
NeedsHeaders returns true if headers are required.
type Headers ¶
type Headers struct {
// contains filtered or unexported fields
}
Headers represents dataset headers.
type JSONOpts ¶
type JSONOpts struct {
Indent int
}
JSONOpts represents options passed to the JSON writer.
type JSONWriter ¶
type JSONWriter struct {
// contains filtered or unexported fields
}
JSONWriter represents a JSON dataset writer.
func NewJSONWriter ¶
func NewJSONWriter(opts *JSONOpts) *JSONWriter
NewJSONWriter creates a new JSON dataset writer.
func (*JSONWriter) NeedsHeaders ¶
func (wj *JSONWriter) NeedsHeaders() bool
NeedsHeaders returns true if headers are required.
type LatexWriter ¶
type LatexWriter struct {
// contains filtered or unexported fields
}
LatexWriter represents a LaTeX dataset writer.
func NewLatexWriter ¶
func NewLatexWriter(opts *LatexOpts) *LatexWriter
NewLatexWriter creates a new LaTeX dataset writer.
func (*LatexWriter) NeedsHeaders ¶
func (wl *LatexWriter) NeedsHeaders() bool
NeedsHeaders returns true if headers are required.
type Row ¶
type Row struct {
// contains filtered or unexported fields
}
Row represents a row of dataset.
func NewRowFromSlice ¶
NewRowFromSlice creates new row from slice of items.
func (*Row) HasAllTags ¶
HasAllTags checks for presence of all tags in the row.
func (*Row) HasAnyTags ¶
HasAnyTags checks for presence of any tags in the row.
type RowSorter ¶
type RowSorter struct {
// contains filtered or unexported fields
}
RowSorter implements a row sorter.
type SQLWriter ¶
type SQLWriter struct {
// contains filtered or unexported fields
}
SQLWriter represents a SQL dataset writer.
func NewSQLWriter ¶
NewSQLWriter creates a new SQL dataset writer.
func (*SQLWriter) NeedsHeaders ¶
NeedsHeaders returns true if headers are required.
type SetTagger ¶
type SetTagger struct {
// contains filtered or unexported fields
}
SetTagger implements a Tagger using string map set.
type Tagger ¶
type Tagger interface { Add(tag string) bool Has(tag string) bool HasAll(tags ...string) bool HasAny(tags ...string) bool Items() []string Len() int }
Tagger represents set of tags.
type Writer ¶
type Writer interface { // Name returns name of the writer. Name() string // NeedsHeaders returns true if headers are required. NeedsHeaders() bool // Write writes dataset to writer. Write(d *Dataset, w io.Writer) error }
Writer represents a dataset writer.
type XMLWriter ¶
type XMLWriter struct {
// contains filtered or unexported fields
}
XMLWriter represents a XML dataset writer.
func NewXMLWriter ¶
NewXMLWriter creates a new XML dataset writer.
func (*XMLWriter) NeedsHeaders ¶
NeedsHeaders returns true if headers are required.
type YAMLWriter ¶
type YAMLWriter struct {
// contains filtered or unexported fields
}
YAMLWriter represents a YAML dataset writer.
func NewYAMLWriter ¶
func NewYAMLWriter(opts *YAMLOpts) *YAMLWriter
NewYAMLWriter creates a new YAML dataset writer.
func (*YAMLWriter) NeedsHeaders ¶
func (wy *YAMLWriter) NeedsHeaders() bool
NeedsHeaders returns true if headers are required.