iris/_future/ipel/evaluator/param.go
Gerasimos (Makis) Maropoulos 126c4de29b _future
1. Fix index, including both start and end. So Literal[start:end+1] will
be a valid part.

2. Replace any with string, add file param type

3. Start of making the evaluator, starting with regexp for param types
(these expression can be changed or/and overriden by user later on)


Former-commit-id: ab95265f953dadbf84170b543e1ff8840f9c4a14
2017-03-27 22:33:19 +03:00

57 lines
1.3 KiB
Go

package evaluator
import (
"gopkg.in/kataras/iris.v6/_future/ipel/ast"
)
// exported to be able to change how param types are evaluating
var ParamTypeEvaluator = make(map[ast.ParamType]ParamEvaluator, 0)
func init() {
// string type
// anything.
stringRegex, err := NewParamEvaluatorFromRegexp(".*")
if err != nil {
panic(err)
}
ParamTypeEvaluator[ast.ParamTypeString] = stringRegex
// int type
// only numbers (0-9)
numRegex, err := NewParamEvaluatorFromRegexp("[0-9]+$")
if err != nil {
panic(err)
}
ParamTypeEvaluator[ast.ParamTypeInt] = numRegex
// alphabetical/letter type
// letters only (upper or lowercase)
alphabeticRegex, err := NewParamEvaluatorFromRegexp("[a-zA-Z]+$")
if err != nil {
panic(err)
}
ParamTypeEvaluator[ast.ParamTypeAlphabetical] = alphabeticRegex
// file type
// letters (upper or lowercase)
// numbers (0-9)
// underscore (_)
// dash (-)
// point (.)
// no spaces! or other character
fileRegex, err := NewParamEvaluatorFromRegexp("[a-zA-Z0-9_.-]*$")
if err != nil {
panic(err)
}
ParamTypeEvaluator[ast.ParamTypeFile] = fileRegex
// path type
// file with slashes(anywhere)
pathRegex, err := NewParamEvaluatorFromRegexp("[a-zA-Z0-9_.-/]*$")
if err != nil {
panic(err)
}
ParamTypeEvaluator[ast.ParamTypePath] = pathRegex
}