replacer

package module
v1.1.1 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2022 License: MIT Imports: 5 Imported by: 2

README

Пакет замены по тегам в строках/тексте

Methods

  • Replace() - нераспознанные теги остаются
  • ReplaceC() - нераспознанные теги удаляются
  • ReplaceE() - нераспознанные теги остаются, дополнительно возвращает массив ошибок
  • ReplaceCE() - нераспознанные теги удаляются, дополнительно возвращает массив ошибок

Usage:

import "gitlab.com/leolab/go/replacer"

func hello() string {
    return "Hello"
}

func greet(name string) string {
    return "Hello "+name
}

func list(vals ...string) string{
    return "Some: "+strings.Join(vals,", ")
}

func main(){
    repl:=replacer.NewReplacer()
    //Predefined functions
    src:=`
        Date: %date%
        Year: %date.Y%
        Month: %date.M%
        Day: %date.D%
        Time: %time%
        Hour: %time.H%
        Minute: %time.M%
        Second: %time.S%
        Ms: %time.Z%
        Ns: %time.ns%

        %undefined%

        %hello%, %name%
        %greet Michael%
        %list one two three four%

    `

    //Extends functions
    repl.Add("name","John")
    repl.Add("hello",hello)
    repl.Add("greet",greet)
    repl.Add("list",list)

    {
        dst:=repl.Replace(src)
        fmt.Println(dst)
    }
    
    {
        dst:=repl.ReplaceC(src)
        fmt.Println(dst)
    }
    
    {
        dst,e:=repl.ReplaceE(src)
        if e!=nil{
            for _,er:=range e {
                fmt.Println("Error: ",er.Error())
            }
        }
        fmt.Println(dst)
    }

    {
        dst,e:=repl.ReplaceCE(src)
        if e!=nil{
            for _,er:=range e {
                fmt.Println("Error: ",er.Error())
            }
        }
        fmt.Println(dst)
    }

}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrorKeyNotFound

type ErrorKeyNotFound struct{ Msg string }

ErrorKeyNotFound

func (ErrorKeyNotFound) Error

func (e ErrorKeyNotFound) Error() string

type ErrorUndefinedTag added in v1.1.0

type ErrorUndefinedTag struct{ Msg string }

ErrorUndefinedTag

func (ErrorUndefinedTag) Error added in v1.1.0

func (e ErrorUndefinedTag) Error() string

type ErrorUnsupportedReplaceType added in v1.1.0

type ErrorUnsupportedReplaceType struct{ Msg string }

ErrorUnsupportedReplaceType

func (ErrorUnsupportedReplaceType) Error added in v1.1.0

type Replacer

type Replacer struct {
	MChar rune
	// contains filtered or unexported fields
}

func NewReplacer

func NewReplacer() *Replacer

func (*Replacer) Add

func (r *Replacer) Add(key string, fn interface{}) error

func (*Replacer) Del

func (r *Replacer) Del(key string) error

func (*Replacer) Replace

func (r *Replacer) Replace(s string) string

Произвести замену, не менять неопознаные теги

func (*Replacer) ReplaceC added in v1.0.1

func (r *Replacer) ReplaceC(s string) string

Произвести замену, удалить неопознанные теги

func (*Replacer) ReplaceCE added in v1.0.1

func (r *Replacer) ReplaceCE(s string) (string, []error)

Произвести замену, удалить неопознанные теги, вернуть ошибки

func (*Replacer) ReplaceE added in v1.0.1

func (r *Replacer) ReplaceE(s string) (string, []error)

Произвести замену, не менять неопознанные теги, вернуть ошибки

Jump to

Keyboard shortcuts

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