fix quirky negative sign expression markup parsing

This commit is contained in:
Michael Go
2025-01-07 14:32:07 -04:00
parent 1de6025362
commit 0b1dc295ff
3 changed files with 16 additions and 3 deletions
+1 -1
View File
@@ -68,7 +68,6 @@ require 'liquid/extensions'
require 'liquid/errors'
require 'liquid/interrupts'
require 'liquid/strainer_template'
require 'liquid/expression'
require 'liquid/context'
require 'liquid/tag'
require 'liquid/block_body'
@@ -77,6 +76,7 @@ require 'liquid/variable'
require 'liquid/variable_lookup'
require 'liquid/range_lookup'
require 'liquid/resource_limits'
require 'liquid/expression'
require 'liquid/template'
require 'liquid/condition'
require 'liquid/utils'
+2 -1
View File
@@ -57,7 +57,8 @@ module Liquid
'true' => true,
'false' => false,
'blank' => '',
'empty' => ''
'empty' => '',
'-' => VariableLookup.parse("-")
}.freeze
DOT = ".".ord
+13 -1
View File
@@ -23,7 +23,7 @@ class ExpressionTest < Minitest::Test
end
def test_float
assert_template_result("-17.42", "{{ -17.42 }}")
assert_template_result("-17.42", "{{ -17.42 }}")
assert_template_result("2.5", "{{ 2.5 }}")
assert_expression_result(1.5, "1.5")
end
@@ -42,6 +42,18 @@ class ExpressionTest < Minitest::Test
)
end
def test_quirky_negative_sign_expression_markup
result = Expression.parse("-")
assert(result.is_a?(VariableLookup))
assert_equal("-", result.name)
# for this template, the expression markup is "-"
assert_template_result(
"",
"{{ - 'theme.css' - }}",
)
end
private
def assert_expression_result(expect, markup, **assigns)