From b69ecec38dbb30b6a3fad6748ae0694a9dc8dcd0 Mon Sep 17 00:00:00 2001 From: Anthony DePasquale Date: Thu, 12 Dec 2024 09:00:20 +0100 Subject: [PATCH] Fix range --- Sources/Environment.swift | 6 +++++- Sources/Template.swift | 1 - 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Sources/Environment.swift b/Sources/Environment.swift index 76359a2..8834a6c 100644 --- a/Sources/Environment.swift +++ b/Sources/Environment.swift @@ -21,10 +21,14 @@ class Environment { return args[0] }), "range": FunctionValue(value: { args, _ in + if args.isEmpty { + throw JinjaError.runtime("range() takes at least 1 argument") + } let start = args[0].value as! Int let stop = args.count > 1 ? args[1].value as? Int : nil let step = args.count > 2 ? args[2].value as! Int : 1 - return ArrayValue(value: range(start: start, stop: stop, step: step).map { NumericValue(value: $0) }) + let result = range(start: start, stop: stop, step: step) + return ArrayValue(value: result.map { NumericValue(value: $0) }) }) ] diff --git a/Sources/Template.swift b/Sources/Template.swift index 8f78efe..14b7f18 100644 --- a/Sources/Template.swift +++ b/Sources/Template.swift @@ -27,7 +27,6 @@ public struct Template { throw JinjaError.runtime("\(args)") } ) - try env.set(name: "range", value: range) for (key, value) in items { try env.set(name: key, value: value)