Skip to content

Commit

Permalink
allow alternative tag name
Browse files Browse the repository at this point in the history
  • Loading branch information
Fs02 committed Jul 21, 2020
1 parent 64e8354 commit f8bfd37
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
26 changes: 18 additions & 8 deletions schema.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,19 +54,29 @@ func inferFields(record interface{}) map[string]int {
}

func inferFieldName(sf reflect.StructField) string {
if tag := sf.Tag.Get("db"); tag != "" {
name := strings.Split(tag, ",")[0]
if name, skip := inferFieldNameFromTag(sf, "ch"); name != "" || skip {
return name
}

if name == "-" {
return ""
}
if name, skip := inferFieldNameFromTag(sf, "db"); name != "" || skip {
return name
}

if name != "" {
return name
return snakecase.SnakeCase(sf.Name)
}

func inferFieldNameFromTag(sf reflect.StructField, tag string) (string, bool) {
var name string

if v := sf.Tag.Get(tag); v != "" {
name = strings.Split(v, ",")[0]

if name == "-" {
return "", true
}
}

return snakecase.SnakeCase(sf.Name)
return name, false
}

func inferFieldMapping(record interface{}) map[string]int {
Expand Down
6 changes: 6 additions & 0 deletions schema_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,19 @@ func TestInferFields(t *testing.T) {
C []byte `db:",primary"`
D bool `db:"D"`
E []*float64 `db:"-"`
F int `db:"not_f" ch:"f"`
G int `db:"-" ch:"g"`
H bool `ch:"h"`
}{}
rt = reflectTypePtr(record)
expected = map[string]int{
"a": 0,
"b": 1,
"c": 2,
"D": 3,
"f": 4,
"g": 5,
"h": 6,
}
)

Expand Down

0 comments on commit f8bfd37

Please sign in to comment.