From d8912584e84fcdc47fbce1d6725da0d12da74965 Mon Sep 17 00:00:00 2001 From: max lin Date: Sat, 11 Mar 2023 03:20:54 +0800 Subject: [PATCH] Rewrite `if` operator with while loop --- lib/json_logic/operation.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/json_logic/operation.rb b/lib/json_logic/operation.rb index be8a972..5c43d80 100644 --- a/lib/json_logic/operation.rb +++ b/lib/json_logic/operation.rb @@ -78,9 +78,13 @@ class Operation v[1] end, 'if' => ->(v, d) { - v.each_slice(2) do |condition, value| + i = 0 + while i < v.length do + condition = v[i] + value = v[i+1] return condition if value.nil? return value if condition.truthy? + i += 2 end nil