egVar

package
v5.3.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Oct 16, 2023 License: MIT Imports: 3 Imported by: 11

Documentation

Overview

Package egVar provides variable naming functionalities.

egVar provides variable naming manipulation, available from danverbraganza/varcaser.

Example

for standalone test, change package to `main` and the next func def to, func main() {

package main

import (
	"os"

	"github.com/go-easygen/easygen"
	"github.com/go-easygen/easygen/egVar"
)

// for standalone test, change package to `main` and the next func def to,
// func main() {
func main() {
	// Equivalent testing on commandline:
	//   easygen test/listfunc2

	tmpl0 := egVar.NewTemplate().Customize()
	tmpl := tmpl0.Funcs(easygen.FuncDefs()).Funcs(egVar.FuncDefs())
	err := easygen.Process(tmpl, os.Stdout, "../test/listfunc2")

	if err != nil {
		panic(err)
	}
}

// To show the full code in GoDoc
type dummy struct {
}
Output:

some-init-method 5 5 someInitMethod SomeInitMethod

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func FuncDefs

func FuncDefs() template.FuncMap

FuncDefs returns the custom definition mapping for this specific package.

Types

type EgVar

type EgVar struct {
	*easygen.EgBase
}

EgVar -- EasyGen variable naming

pre-configed varcaser caser converters the names are self-explanatory from their definitions https://github.com/danverbraganza/varcaser/

ls - LowerSnakeCase: lower_snake_case
ss - ScreamingSnakeCase: SCREAMING_SNAKE_CASE
lk - KebabCase: kebab-case
ScreamingKebabCase: SCREAMING-KEBAB-CASE
hh - HttpHeaderCase: HTTP-Header-Case
UpperCamelCase: UpperCamelCase (renders HTTP as Http)
LowerCamelCase: lowerCamelCase (renders HTTP as Http)
uc - UpperCamelCaseKeepCaps: UpperCamelCaseKeepCaps (renders HTTP as HTTP)
lc - LowerCamelCaseKeepCaps: lowerCamelCaseKeepCaps (renders HTTP as hTTP)
Example (Output)
package main

import (
	"fmt"
	"os"

	"github.com/go-easygen/easygen"
	"github.com/go-easygen/easygen/egVar"
)

func main() {
	// EgVar variable names converting full coverage test

	tmpl0 := egVar.NewTemplate().Customize()
	tmpl := tmpl0.Funcs(easygen.FuncDefs()).Funcs(egVar.FuncDefs())
	fmt.Println("\n## From lk - KebabCase => CamelCase/SnakeCase")
	easygen.Process0(tmpl, os.Stdout,
		"{{.Name}}: {{clk2lc .Name}} {{clk2uc .Name}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		"{{.Name}}: {{clk2ls .Name}} {{clk2ss .Name}}\n", "../test/listfunc2")

	fmt.Println("\n## From ls/ss - LowerSnakeCase/ScreamingSnakeCase")
	easygen.Process0(tmpl, os.Stdout,
		"{{clk2ls .Name}} {{clk2ss .Name}} =>\n", "../test/listfunc2")
	fmt.Println("### From ls")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ls .Name | cls2lc}} {{clk2ls .Name | cls2uc}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ls .Name | cls2ss}} {{clk2ls .Name | cls2lk}} {{clk2ls .Name | cls2hh}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ls .NameHTTP | cls2lc}} {{clk2ls .NameHTTP | cls2uc}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ls .NameHTTP | cls2ss}} {{clk2ls .NameHTTP | cls2lk}} {{clk2ls .NameHTTP | cls2hh}}\n", "../test/listfunc2")
	fmt.Println("### From ss")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ss .Name | css2lc}} {{clk2ss .Name | css2uc}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ss .Name | css2ls}} {{clk2ss .Name | css2lk}} {{clk2ss .Name | css2hh}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ss .NameHTTP | css2lc}} {{clk2ss .NameHTTP | css2uc}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		" {{clk2ss .NameHTTP | css2ls}} {{clk2ss .NameHTTP | css2lk}} {{clk2ss .NameHTTP | css2hh}}\n", "../test/listfunc2")

	fmt.Println("\n## From lc/uc - LowerCamelCase/UpperCamelCaseKeepCaps")
	easygen.Process0(tmpl, os.Stdout,
		"{{clk2lc .Name}} {{clk2uc .Name}} =>\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		"{{clk2lc .Name}}: {{clk2lc .Name | clc2uc}} {{clk2lc .Name | clc2ls}} {{clk2lc .Name | clc2ss}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		"{{clk2uc .Name}}: {{clk2uc .Name | cuc2lc}} {{clk2uc .Name | cuc2ls}} {{clk2uc .Name | cuc2ss}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		"{{.NameMixed}}: {{clc2uc .NameMixed}} {{clc2uc .NameMixed | cuc2lc}} {{clc2ls .NameMixed}} {{clc2ls .NameMixed | cls2lc}}\n", "../test/listfunc2")
	easygen.Process0(tmpl, os.Stdout,
		"{{.NameMixed}}: {{clc2ls .NameMixed | cls2ss}} {{clc2ls .NameMixed | cls2lk}} {{clc2ls .NameMixed | cls2hh}}\n", "../test/listfunc2")

}
Output:


## From lk - KebabCase => CamelCase/SnakeCase
some-init-method: someInitMethod SomeInitMethod
some-init-method: some_init_method SOME_INIT_METHOD

## From ls/ss - LowerSnakeCase/ScreamingSnakeCase
some_init_method SOME_INIT_METHOD =>
### From ls
 someInitMethod SomeInitMethod
 SOME_INIT_METHOD some-init-method Some-Init-Method
 httpHeaderCase HttpHeaderCase
 HTTP_HEADER_CASE http-header-case HTTP-Header-Case
### From ss
 someINITMETHOD SOMEINITMETHOD
 some_init_method some-init-method Some-Init-Method
 httpHEADERCASE HTTPHEADERCASE
 http_header_case http-header-case HTTP-Header-Case

## From lc/uc - LowerCamelCase/UpperCamelCaseKeepCaps
someInitMethod SomeInitMethod =>
someInitMethod: SomeInitMethod some_init_method SOME_INIT_METHOD
SomeInitMethod: someInitMethod some_init_method SOME_INIT_METHOD
some_InitMethod: Some_InitMethod some_InitMethod some__init_method someInitMethod
some_InitMethod: SOME__INIT_METHOD some--init-method Some--Init-Method

func NewTemplate

func NewTemplate() *EgVar

NewTemplate returns a new Template for this specific package.

Jump to

Keyboard shortcuts

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