iolr

package module
v0.0.0-...-65da482 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2019 License: BSD-3-Clause Imports: 7 Imported by: 1

README

go-ioutil

Utilites for GoLang IO.

Installation

go get -u github.com/moisespsena/go-ioutil

Usage

See Sample Application for more details.

Sample Code
package main

import (
	"fmt"

	"github.com/moisespsena-go/iolr"
)

var i int

func check(f func() (string, error)) {
	i++
	fmt.Println("--> EXEMPLO ", i, "<--")
	line, err := f()
	if err != nil {
		panic(err)
	}
	if iolr.IsEmptyInput(line) {
		fmt.Printf("Voce não digitou nada.\n\n")
	} else {
		fmt.Printf("Voce digitou: %q\n\n", line)
	}
}

func main() {
	l := iolr.STDMessageLR
	check(func() (string, error) {
		fmt.Println("Digite alguma coisa:")
		return iolr.StdinLR.ReadLineS()
	})
	check(func() (string, error) {
		return l.ReadS("Digite alguma coisa 2")
	})
	check(func() (string, error) {
		return l.ReadS("Digite alguma coisa OU apenas dê ENTER e veja o valor padrão", "Viva o Brasil!!")
	})
	msg := "Escolha uma Opção ou deixe vazio"
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptions{Message: msg, Options: []string{"a", "b", "c"}})
	})
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptions{Message: msg, Options: []string{"a", "b", "c"}, Default: "b"})
	})
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptions{Message: msg, Options: []string{"a", "b", "c"}}, "c")
	})
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptionsPairs{Message: msg, Options: iolr.MapToPairs(map[interface{}]string{"B": "Brazil", "E": "EUA"})})
	})
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptionsPairs{Message: msg, Options: iolr.MapToPairs(map[interface{}]string{"B": "Brazil", "E": "EUA"}), Default: "B"})
	})
	check(func() (string, error) {
		return l.ReadFS(&iolr.FOptionsPairs{Message: msg, Options: iolr.MapToPairs(map[interface{}]string{"B": "Brazil", "E": "EUA"}), Default: "B"}, "c")
	})

	msgObrigatorio := "Escolha uma Opção (Obs: NÃO pode ser vazio)"
	check(func() (string, error) {
		return l.RequireFS(&iolr.FOptions{Message: msgObrigatorio, Options: []string{"a", "b", "c"}})
	})
	check(func() (string, error) {
		return l.RequireFS(&iolr.FOptionsPairs{Message: msgObrigatorio, Options: iolr.MapToPairs(map[interface{}]string{"B": "Brazil", "E": "EUA"})})
	})
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CRLF = []byte{'\r', '\n'}
	LF   = []byte{'\n'}
)
View Source
var (
	StdOutLW = NewLineWriter(os.Stdout)
	StdErrLW = NewLineWriter(os.Stderr)
)

Functions

func IsEmptyInput

func IsEmptyInput(value interface{}) bool

func ReadLine

func ReadLine(r io.Reader) (data []byte, err error)

func ReadLineCR

func ReadLineCR(r io.Reader) (data []byte, err error)

func StringPairSortByKey

func StringPairSortByKey(a, b *StringPair) bool

func StringPairSortByValue

func StringPairSortByValue(a, b *StringPair) bool

Types

type DefaultLineReader

type DefaultLineReader struct {
	io.Reader
	// contains filtered or unexported fields
}

func (*DefaultLineReader) CR

func (r *DefaultLineReader) CR() bool

func (*DefaultLineReader) ReadLine

func (r *DefaultLineReader) ReadLine() (data []byte, err error)

func (*DefaultLineReader) ReadLineS

func (r *DefaultLineReader) ReadLineS() (data string, err error)

func (*DefaultLineReader) SetCR

func (r *DefaultLineReader) SetCR(cr bool)

type DefaultLineWriter

type DefaultLineWriter struct {
	io.Writer
	// contains filtered or unexported fields
}

func (*DefaultLineWriter) CR

func (d *DefaultLineWriter) CR() bool

func (*DefaultLineWriter) SetCR

func (d *DefaultLineWriter) SetCR(v bool)

func (*DefaultLineWriter) WriteLine

func (w *DefaultLineWriter) WriteLine() (n int, err error)

func (*DefaultLineWriter) WriteLineB

func (w *DefaultLineWriter) WriteLineB(data []byte) (n int, err error)

func (*DefaultLineWriter) WriteLineS

func (w *DefaultLineWriter) WriteLineS(data string) (n int, err error)

func (*DefaultLineWriter) WriteS

func (w *DefaultLineWriter) WriteS(data string) (n int, err error)

type FOptions

type FOptions struct {
	Message string
	Options []string
	Sep     string
	Default interface{}
	Wrap    [2]string
}

func (*FOptions) DefaultValue

func (f *FOptions) DefaultValue() interface{}

func (*FOptions) Validate

func (f *FOptions) Validate(data []byte) error

func (*FOptions) Write

func (f *FOptions) Write(w LineWriter, require bool, requireMessage *string, defaul string) error

type FOptionsPairs

type FOptionsPairs struct {
	Message        string
	Header         string
	Options        StringPairs
	Default        interface{}
	DefaultWrap    [2]string
	DefaultMessage string
	Sep            string
	CaseSensitive  bool
	// contains filtered or unexported fields
}

func (*FOptionsPairs) DefaultValue

func (f *FOptionsPairs) DefaultValue() interface{}

func (*FOptionsPairs) Validate

func (f *FOptionsPairs) Validate(data []byte) error

func (*FOptionsPairs) ValueOf

func (f *FOptionsPairs) ValueOf(data []byte) (value interface{})

func (*FOptionsPairs) Write

func (f *FOptionsPairs) Write(w LineWriter, require bool, requireMessage *string, defaul string) (err error)

type FormatValuer

type FormatValuer interface {
	Formatter
	ValueOf(data []byte) interface{}
}

type Formatter

type Formatter interface {
	Write(w LineWriter, require bool, requireMessage *string, defaul string) (err error)
	DefaultValue() interface{}
	Validate(data []byte) error
}

type LineReader

type LineReader interface {
	io.Reader
	SetCR(v bool)
	CR() bool
	ReadLine() (data []byte, err error)
	ReadLineS() (data string, err error)
}

func NewLineReader

func NewLineReader(r io.Reader) LineReader

type LineWriter

type LineWriter interface {
	io.Writer
	SetCR(v bool)
	CR() bool
	WriteLine() (n int, err error)
	WriteLineB(data []byte) (n int, err error)
	WriteLineS(data string) (n int, err error)
	WriteS(data string) (n int, err error)
}

func NewLineWriter

func NewLineWriter(w io.Writer) LineWriter

type MessageLineReader

type MessageLineReader struct {
	Writer             LineWriter
	Reader             LineReader
	ErrorWriter        LineWriter
	InputMessageWriter LineWriter
	Sep                string
	RequireMessage     string

	InputMessage func(data []byte) []byte
	// contains filtered or unexported fields
}

func NewMessageLineReader

func NewMessageLineReader(w io.Writer, r io.Reader, ew io.Writer, iw ...io.Writer) *MessageLineReader

func (*MessageLineReader) DisablePrintInput

func (r *MessageLineReader) DisablePrintInput() *MessageLineReader

func (*MessageLineReader) EnablePrintInput

func (r *MessageLineReader) EnablePrintInput() *MessageLineReader

func (*MessageLineReader) IsPrintInputEnabled

func (r *MessageLineReader) IsPrintInputEnabled() bool

func (*MessageLineReader) Read

func (r *MessageLineReader) Read(message string, defaul ...string) (data []byte, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadF

func (r *MessageLineReader) ReadF(formatter Formatter, defaul ...interface{}) (value interface{}, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadFS

func (r *MessageLineReader) ReadFS(formatter Formatter, defaul ...string) (value string, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadFormatter

func (r *MessageLineReader) ReadFormatter(formatter Formatter, require bool, defaul ...interface{}) (value interface{}, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadRaw

func (r *MessageLineReader) ReadRaw(message []byte) (data []byte, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadRawS

func (r *MessageLineReader) ReadRawS(message []byte) (data string, err errwrap.ErrorWrapper)

func (*MessageLineReader) ReadS

func (r *MessageLineReader) ReadS(message string, defaul ...string) (data string, err errwrap.ErrorWrapper)

func (*MessageLineReader) Require

func (r *MessageLineReader) Require(message string, defaul ...string) (data []byte, err errwrap.ErrorWrapper)

func (*MessageLineReader) RequireF

func (r *MessageLineReader) RequireF(formatter Formatter, defaul ...interface{}) (value interface{}, err errwrap.ErrorWrapper)

func (*MessageLineReader) RequireFS

func (r *MessageLineReader) RequireFS(formatter Formatter, defaul ...string) (data string, err errwrap.ErrorWrapper)

func (*MessageLineReader) RequireS

func (r *MessageLineReader) RequireS(message string, defaul ...string) (data string, err errwrap.ErrorWrapper)

func (*MessageLineReader) WithPrintInput

func (r *MessageLineReader) WithPrintInput() func()

type StringPair

type StringPair struct {
	K, V string
	Ki   interface{}
}

type StringPairs

type StringPairs []*StringPair

func MapToPairs

func MapToPairs(m map[interface{}]string) (pairs StringPairs)

func NewPairs

func NewPairs(kv ...interface{}) (pairs StringPairs)

func StringsToPairs

func StringsToPairs(v ...string) (pairs StringPairs)

func (StringPairs) Add

func (s StringPairs) Add(key interface{}, value string) StringPairs

func (StringPairs) AddBlank

func (s StringPairs) AddBlank() StringPairs

func (StringPairs) AddPairs

func (s StringPairs) AddPairs(kv ...interface{}) StringPairs

func (StringPairs) AddTitle

func (s StringPairs) AddTitle(title string) StringPairs

func (StringPairs) Append

func (s StringPairs) Append(pairs ...*StringPair) StringPairs

func (StringPairs) Sort

func (s StringPairs) Sort(less func(i, j *StringPair) bool) StringPairs

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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