diff --git a/filters_additional.go b/filters_additional.go new file mode 100644 index 0000000..c3c4e26 --- /dev/null +++ b/filters_additional.go @@ -0,0 +1,22 @@ +package pongo2 + +import ( + "fmt" +) + +// Range returns a list of integers from 1 till given input +func Range(in *Value, param *Value) (out *Value, err *Error) { + if !in.IsInteger() { + return nil, &Error{ + OrigError: fmt.Errorf("only strings should be sent to the scream filter"), + } + } + + n := in.Integer() + l := []int{} + for i := 1; i < n+1; i++ { + l = append(l, i) + } + + return AsValue(l), nil +} diff --git a/filters_builtin.go b/filters_builtin.go index 2b436c2..e7ed1aa 100644 --- a/filters_builtin.go +++ b/filters_builtin.go @@ -95,6 +95,7 @@ func init() { RegisterFilter("float", filterFloat) // pongo-specific RegisterFilter("integer", filterInteger) // pongo-specific + RegisterFilter("range", Range) // additional } func filterTruncatecharsHelper(s string, newLen int) string {