From f686c5dec771b072fb6c62b3de2323168223d03b Mon Sep 17 00:00:00 2001 From: Michael Go Date: Mon, 14 Jun 2021 18:19:37 -0300 Subject: [PATCH] use Utils.to_liquid_value on conditionals --- lib/liquid/condition.rb | 4 ++-- test/integration/variable_test.rb | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb index 8b7dd65..3dd433d 100644 --- a/lib/liquid/condition.rb +++ b/lib/liquid/condition.rb @@ -134,8 +134,8 @@ module Liquid # return this as the result. return context.evaluate(left) if op.nil? - left = context.evaluate(left) - right = context.evaluate(right) + left = Liquid::Utils.to_liquid_value(context.evaluate(left)) + right = Liquid::Utils.to_liquid_value(context.evaluate(right)) operation = self.class.operators[op] || raise(Liquid::ArgumentError, "Unknown operator #{op}") diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb index b0b70f8..5c87550 100644 --- a/test/integration/variable_test.rb +++ b/test/integration/variable_test.rb @@ -25,6 +25,8 @@ class VariableTest < Minitest::Test def test_if_tag_calls_to_liquid_value assert_template_result('one', '{% if foo == 1 %}one{% endif %}', 'foo' => IntegerDrop.new('1')) + assert_template_result('one', '{% if 0 < foo %}one{% endif %}', 'foo' => IntegerDrop.new('1')) + assert_template_result('one', '{% if foo > 0 %}one{% endif %}', 'foo' => IntegerDrop.new('1')) assert_template_result('true', '{% if foo == true %}true{% endif %}', 'foo' => BooleanDrop.new(true)) assert_template_result('true', '{% if foo %}true{% endif %}', 'foo' => BooleanDrop.new(true))