Ensure nil works as a variable name

This commit is contained in:
Justin Li
2014-10-21 14:03:10 -04:00
parent dedd1d3dc0
commit 5d68e8803f
3 changed files with 8 additions and 1 deletions

View File

@@ -83,7 +83,6 @@ module Liquid
end
def render(context)
return ''.freeze if @name.nil?
@filters.inject(context.evaluate(@name)) do |output, (filter_name, filter_args, filter_kwargs)|
filter_args = evaluate_filter_expressions(context, filter_args, filter_kwargs)
output = context.invoke(filter_name, output, *filter_args)

View File

@@ -8,7 +8,11 @@ class IfElseTagTest < Minitest::Test
assert_template_result(' this text should go into the output ',
' {% if true %} this text should go into the output {% endif %} ')
assert_template_result(' you rock ?','{% if false %} you suck {% endif %} {% if true %} you rock {% endif %}?')
end
def test_literal_comparisons
assert_template_result(' NO ','{% assign v = false %}{% if v %} YES {% else %} NO {% endif %}')
assert_template_result(' YES ','{% assign v = nil %}{% if v == nil %} YES {% else %} NO {% endif %}')
end
def test_if_else

View File

@@ -34,6 +34,10 @@ class VariableTest < Minitest::Test
assert_equal 'false', Template.parse("{{ false }}").render!
end
def test_nil_operations
assert_equal 'cat', Template.parse("{{ nil | append: 'cat' }}").render!
end
def test_preset_assigns
template = Template.parse(%|{{ test }}|)
template.assigns['test'] = 'worked'