Skip to content

Commit

Permalink
add alias
Browse files Browse the repository at this point in the history
  • Loading branch information
agonist committed Nov 28, 2023
1 parent fc824d6 commit cc5636f
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 6 deletions.
24 changes: 18 additions & 6 deletions cmd/genji/doc/doc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package doc_test
import (
"fmt"
"regexp"
"strings"
"testing"

"github.com/genjidb/genji/cmd/genji/doc"
Expand All @@ -17,13 +18,24 @@ func TestFunctions(t *testing.T) {
for pkgname, pkg := range packages {
for fname, def := range pkg {
if pkgname == "" {
t.Run(fmt.Sprintf("%s is documented and has all its arguments mentioned", fname), func(t *testing.T) {
str, err := doc.DocString(fname)
assert.NoError(t, err)
for i := 0; i < def.Arity(); i++ {
require.Contains(t, trimDocPromt(str), fmt.Sprintf("arg%d", i+1))
var isAlias = false
for pkgname2, pkg2 := range packages {
if pkgname2 != "" {
_, ok := pkg2[strings.ToLower(fname)]
if ok {
isAlias = true
}
}
})
}
if !isAlias {
t.Run(fmt.Sprintf("%s is documented and has all its arguments mentioned", fname), func(t *testing.T) {
str, err := doc.DocString(fname)
assert.NoError(t, err)
for i := 0; i < def.Arity(); i++ {
require.Contains(t, trimDocPromt(str), fmt.Sprintf("arg%d", i+1))
}
})
}
} else {
t.Run(fmt.Sprintf("%s.%s is documented and has all its arguments mentioned", pkgname, fname), func(t *testing.T) {
str, err := doc.DocString(fmt.Sprintf("%s.%s", pkgname, fname))
Expand Down
19 changes: 19 additions & 0 deletions internal/expr/functions/builtins.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,25 @@ var builtinFunctions = Definitions{
return &Now{}, nil
},
},

// strings alias
"lower": stringsFunctions["lower"],
"upper": stringsFunctions["upper"],
"trim": stringsFunctions["trim"],
"ltrim": stringsFunctions["ltrim"],
"rtrim": stringsFunctions["rtrim"],

// math alias
"floor": mathFunctions["floor"],
"abs": mathFunctions["abs"],
"acos": mathFunctions["acos"],
"acosh": mathFunctions["acosh"],
"asin": mathFunctions["asin"],
"asinh": mathFunctions["asinh"],
"atan": mathFunctions["atan"],
"atan2": mathFunctions["atan2"],
"random": mathFunctions["random"],
"sqrt": mathFunctions["sqrt"],
}

// BuiltinDefinitions returns a map of builtin functions.
Expand Down

0 comments on commit cc5636f

Please sign in to comment.