mirror of
https://github.com/kataras/iris.git
synced 2026-01-03 18:27:07 +00:00
_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
This commit is contained in:
27
_future/ipel/evaluator/evaluator.go
Normal file
27
_future/ipel/evaluator/evaluator.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package evaluator
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
// final evaluator signature for both param types and param funcs
|
||||
type ParamEvaluator func(paramValue string) bool
|
||||
|
||||
func NewParamEvaluatorFromRegexp(expr string) (ParamEvaluator, error) {
|
||||
if expr == "" {
|
||||
return nil, fmt.Errorf("empty regex expression")
|
||||
}
|
||||
|
||||
// add the last $ if missing (and not wildcard(?))
|
||||
if i := expr[len(expr)-1]; i != '$' && i != '*' {
|
||||
expr += "$"
|
||||
}
|
||||
|
||||
r, err := regexp.Compile(expr)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return r.MatchString, nil
|
||||
}
|
||||
Reference in New Issue
Block a user