Skip to content

Commit d420f09

Browse files
committed
- [+] add more CamelCase converting & full coverage test
1 parent acc80c7 commit d420f09

File tree

2 files changed

+90
-16
lines changed

2 files changed

+90
-16
lines changed

egVar/EgVar.go

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,25 @@ import (
2424
// Constant and data type/structure definitions
2525

2626
// EgVar -- EasyGen variable naming
27-
type EgVar struct {
28-
*easygen.EgBase
29-
}
30-
27+
//
3128
// pre-configed varcaser caser converters
3229
// the names are self-explanatory from their definitions
3330
// https://github.com/danverbraganza/varcaser/
3431
/*
35-
ls - LowerSnakeCase: lower_snake_case
36-
ss - ScreamingSnakeCase: SCREAMING_SNAKE_CASE
37-
lk - KebabCase: kebab-case
38-
ScreamingKebabCase: SCREAMING-KEBAB-CASE
39-
hh - HttpHeaderCase: HTTP-Header-Case
40-
UpperCamelCase: UpperCamelCase (renders HTTP as Http)
41-
LowerCamelCase: lowerCamelCase (renders HTTP as Http)
42-
uc - UpperCamelCaseKeepCaps: UpperCamelCaseKeepCaps (renders HTTP as HTTP)
43-
lc - LowerCamelCaseKeepCaps: lowerCamelCaseKeepCaps (renders HTTP as hTTP)
32+
ls - LowerSnakeCase: lower_snake_case
33+
ss - ScreamingSnakeCase: SCREAMING_SNAKE_CASE
34+
lk - KebabCase: kebab-case
35+
ScreamingKebabCase: SCREAMING-KEBAB-CASE
36+
hh - HttpHeaderCase: HTTP-Header-Case
37+
UpperCamelCase: UpperCamelCase (renders HTTP as Http)
38+
LowerCamelCase: lowerCamelCase (renders HTTP as Http)
39+
uc - UpperCamelCaseKeepCaps: UpperCamelCaseKeepCaps (renders HTTP as HTTP)
40+
lc - LowerCamelCaseKeepCaps: lowerCamelCaseKeepCaps (renders HTTP as hTTP)
4441
*/
42+
type EgVar struct {
43+
*easygen.EgBase
44+
}
45+
4546
var (
4647
cls2lc = varcaser.Caser{
4748
From: varcaser.LowerSnakeCase, To: varcaser.LowerCamelCaseKeepCaps}
@@ -58,8 +59,8 @@ var (
5859
From: varcaser.ScreamingSnakeCase, To: varcaser.LowerCamelCaseKeepCaps}
5960
css2uc = varcaser.Caser{
6061
From: varcaser.ScreamingSnakeCase, To: varcaser.UpperCamelCaseKeepCaps}
61-
css2ss = varcaser.Caser{
62-
From: varcaser.ScreamingSnakeCase, To: varcaser.ScreamingSnakeCase}
62+
css2ls = varcaser.Caser{
63+
From: varcaser.ScreamingSnakeCase, To: varcaser.LowerSnakeCase}
6364
css2lk = varcaser.Caser{
6465
From: varcaser.ScreamingSnakeCase, To: varcaser.KebabCase}
6566
css2hh = varcaser.Caser{
@@ -71,10 +72,16 @@ var (
7172
clk2ss = varcaser.Caser{
7273
From: varcaser.KebabCase, To: varcaser.ScreamingSnakeCase}
7374

75+
clc2uc = varcaser.Caser{
76+
From: varcaser.LowerCamelCase, To: varcaser.UpperCamelCaseKeepCaps}
7477
clc2ls = varcaser.Caser{
7578
From: varcaser.LowerCamelCase, To: varcaser.LowerSnakeCase}
7679
clc2ss = varcaser.Caser{
7780
From: varcaser.LowerCamelCase, To: varcaser.ScreamingSnakeCase}
81+
cuc2lc = varcaser.Caser{
82+
From: varcaser.UpperCamelCase, To: varcaser.LowerCamelCase}
83+
cuc2ls = varcaser.Caser{
84+
From: varcaser.UpperCamelCase, To: varcaser.LowerSnakeCase}
7885
cuc2ss = varcaser.Caser{
7986
From: varcaser.UpperCamelCase, To: varcaser.ScreamingSnakeCase}
8087
)
@@ -88,7 +95,7 @@ var egFuncMap = easygen.FuncMap{
8895

8996
"css2lc": css2lc.String,
9097
"css2uc": css2uc.String,
91-
"css2ss": css2ss.String,
98+
"css2ls": css2ls.String,
9299
"css2lk": css2lk.String,
93100
"css2hh": css2hh.String,
94101

@@ -97,8 +104,11 @@ var egFuncMap = easygen.FuncMap{
97104
"clk2ls": clk2ls.String,
98105
"clk2ss": clk2ss.String,
99106

107+
"clc2uc": clc2uc.String,
100108
"clc2ls": clc2ls.String,
101109
"clc2ss": clc2ss.String,
110+
"cuc2lc": cuc2lc.String,
111+
"cuc2ls": cuc2ls.String,
102112
"cuc2ss": cuc2ss.String,
103113

104114
// Aliases, for backwards-compatibility with earlier (>= v1) versions

egVar/EgVar_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package egVar_test
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"github.com/go-easygen/easygen"
8+
"github.com/go-easygen/easygen/egVar"
9+
)
10+
11+
func ExampleEgVar_output() {
12+
// EgVar variable names converting full coverage test
13+
14+
tmpl0 := egVar.NewTemplate().Customize()
15+
tmpl := tmpl0.Funcs(easygen.FuncDefs()).Funcs(egVar.FuncDefs())
16+
fmt.Println("\n## From lk - KebabCase => CamelCase/SnakeCase")
17+
easygen.Process0(tmpl, os.Stdout,
18+
"{{.Name}}: {{clk2lc .Name}} {{clk2uc .Name}}\n", "../test/listfunc2")
19+
easygen.Process0(tmpl, os.Stdout,
20+
"{{.Name}}: {{clk2ls .Name}} {{clk2ss .Name}}\n", "../test/listfunc2")
21+
22+
fmt.Println("\n## From ls/ss - LowerSnakeCase/ScreamingSnakeCase")
23+
easygen.Process0(tmpl, os.Stdout,
24+
"{{clk2ls .Name}} {{clk2ss .Name}} =>\n", "../test/listfunc2")
25+
fmt.Println("### From ls")
26+
easygen.Process0(tmpl, os.Stdout,
27+
" {{clk2ls .Name | cls2lc}} {{clk2ls .Name | cls2uc}}\n", "../test/listfunc2")
28+
easygen.Process0(tmpl, os.Stdout,
29+
" {{clk2ls .Name | cls2ss}} {{clk2ls .Name | cls2lk}} {{clk2ls .Name | cls2hh}}\n", "../test/listfunc2")
30+
fmt.Println("### From ss")
31+
easygen.Process0(tmpl, os.Stdout,
32+
" {{clk2ss .Name | css2lc}} {{clk2ss .Name | css2uc}}\n", "../test/listfunc2")
33+
easygen.Process0(tmpl, os.Stdout,
34+
" {{clk2ss .Name | css2ls}} {{clk2ss .Name | css2lk}} {{clk2ss .Name | css2hh}}\n", "../test/listfunc2")
35+
36+
fmt.Println("\n## From lc/uc - LowerCamelCase/UpperCamelCaseKeepCaps")
37+
easygen.Process0(tmpl, os.Stdout,
38+
"{{clk2lc .Name}} {{clk2uc .Name}} =>\n", "../test/listfunc2")
39+
easygen.Process0(tmpl, os.Stdout,
40+
"{{clk2lc .Name}}: {{clk2lc .Name | clk2uc}} {{clk2lc .Name | clc2ls}} {{clk2lc .Name | clc2ss}}\n", "../test/listfunc2")
41+
easygen.Process0(tmpl, os.Stdout,
42+
"{{clk2uc .Name}}: {{clk2uc .Name | cuc2lc}} {{clk2uc .Name | cuc2ls}} {{clk2uc .Name | cuc2ss}}\n", "../test/listfunc2")
43+
44+
// Output:
45+
//
46+
// ## From lk - KebabCase => CamelCase/SnakeCase
47+
// some-init-method: someInitMethod SomeInitMethod
48+
// some-init-method: some_init_method SOME_INIT_METHOD
49+
//
50+
// ## From ls/ss - LowerSnakeCase/ScreamingSnakeCase
51+
// some_init_method SOME_INIT_METHOD =>
52+
// ### From ls
53+
// someInitMethod SomeInitMethod
54+
// SOME_INIT_METHOD some-init-method Some-Init-Method
55+
// ### From ss
56+
// someINITMETHOD SOMEINITMETHOD
57+
// some_init_method some-init-method Some-Init-Method
58+
//
59+
// ## From lc/uc - LowerCamelCase/UpperCamelCaseKeepCaps
60+
// someInitMethod SomeInitMethod =>
61+
// someInitMethod: SomeInitMethod some_init_method SOME_INIT_METHOD
62+
// SomeInitMethod: someInitMethod some_init_method SOME_INIT_METHOD
63+
64+
}

0 commit comments

Comments
 (0)