'contains' operator returns false if either operand is nil

This commit is contained in:
James MacAulay
2009-08-19 19:38:31 -04:00
parent 0150067c40
commit d1d6febfc1
2 changed files with 7 additions and 1 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ module Liquid
'>' => :>, '>' => :>,
'>=' => :>=, '>=' => :>=,
'<=' => :<=, '<=' => :<=,
'contains' => lambda { |cond, left, right| left.include?(right) }, 'contains' => lambda { |cond, left, right| left && right ? left.include?(right) : false }
} }
def self.operators def self.operators
+6
View File
@@ -60,6 +60,12 @@ class ConditionTest < Test::Unit::TestCase
end end
def test_contains_returns_false_for_nil_operands
@context = Liquid::Context.new
assert_evalutes_false "not_assigned", 'contains', '0'
assert_evalutes_false "0", 'contains', 'not_assigned'
end
def test_or_condition def test_or_condition
condition = Condition.new('1', '==', '2') condition = Condition.new('1', '==', '2')