From 0e3b522fe2caa7700f177913a85360a212930b77 Mon Sep 17 00:00:00 2001 From: Dennis Theisen Date: Mon, 12 Mar 2012 16:38:34 -0400 Subject: [PATCH] Fix conditions using negative number comparisons --- lib/liquid/context.rb | 4 ++-- test/liquid/condition_test.rb | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/liquid/context.rb b/lib/liquid/context.rb index 1075c4e..1d5290a 100644 --- a/lib/liquid/context.rb +++ b/lib/liquid/context.rb @@ -136,11 +136,11 @@ module Liquid $1 when /^"(.*)"$/ # Double quoted strings $1 - when /^(\d+)$/ # Integer and floats + when /^(-?\d+)$/ # Integer and floats $1.to_i when /^\((\S+)\.\.(\S+)\)$/ # Ranges (resolve($1).to_i..resolve($2).to_i) - when /^(\d[\d\.]+)$/ # Floats + when /^(-?\d[\d\.]+)$/ # Floats $1.to_f else variable(key) diff --git a/test/liquid/condition_test.rb b/test/liquid/condition_test.rb index 7dd096e..52a0e03 100644 --- a/test/liquid/condition_test.rb +++ b/test/liquid/condition_test.rb @@ -18,6 +18,11 @@ class ConditionTest < Test::Unit::TestCase assert_evalutes_true '2', '>=', '1' assert_evalutes_true '1', '<=', '2' assert_evalutes_true '1', '<=', '1' + # negative numbers + assert_evalutes_true '1', '>', '-1' + assert_evalutes_true '-1', '<', '1' + assert_evalutes_true '1.0', '>', '-1.0' + assert_evalutes_true '-1.0', '<', '1.0' end def test_default_operators_evalute_false