Skip to content

Commit f4232ad

Browse files
committed
add min/max functions
1 parent 4736b4c commit f4232ad

File tree

1 file changed

+33
-3
lines changed

1 file changed

+33
-3
lines changed

app/src/Outlander/Scripting/FunctionEvaluator.swift

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,36 @@ class FunctionExecutor {
255255

256256
return "false"
257257
},
258+
.function("max", arity: 2): { args in
259+
guard let numA = Double(args[0].trimmingCharacters(in: .whitespacesAndNewlines)), let numB = Double(args[1].trimmingCharacters(in: .whitespacesAndNewlines)) else {
260+
return ""
261+
}
262+
263+
let result = numA > numB ? numA : numB
264+
265+
var res = "\(result)"
266+
267+
if result == rint(result) {
268+
res = "\(Int(result))"
269+
}
270+
271+
return res
272+
},
273+
.function("min", arity: 2): { args in
274+
guard let numA = Double(args[0].trimmingCharacters(in: .whitespacesAndNewlines)), let numB = Double(args[1].trimmingCharacters(in: .whitespacesAndNewlines)) else {
275+
return ""
276+
}
277+
278+
let result = numA > numB ? numB : numA
279+
280+
var res = "\(result)"
281+
282+
if result == rint(result) {
283+
res = "\(Int(result))"
284+
}
285+
286+
return res
287+
},
258288
.function("tolower", arity: 1): { args in self.trimQuotes(args[0]).lowercased() },
259289
.function("toupper", arity: 1): { args in self.trimQuotes(args[0]).uppercased() },
260290
.function("tocaps", arity: 1): { args in self.trimQuotes(args[0]).uppercased() },
@@ -293,7 +323,7 @@ class FunctionExecutor {
293323
res = "\(Int(result))"
294324
}
295325

296-
return String(res)
326+
return res
297327
},
298328
.function("ceil", arity: 1): { args in
299329
let num = Double(args[0]) ?? 0
@@ -305,7 +335,7 @@ class FunctionExecutor {
305335
res = "\(Int(result))"
306336
}
307337

308-
return String(res)
338+
return res
309339
},
310340
.function("def", arity: 1): { args in
311341
let variable = args[0]
@@ -322,7 +352,7 @@ class FunctionExecutor {
322352
res = "\(Int(result))"
323353
}
324354

325-
return String(res)
355+
return res
326356
},
327357
.function("substring", arity: 3): { args in
328358
try substring(args)

0 commit comments

Comments
 (0)