mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-20 03:10:39 -07:00
Extract Parser#number parse out of Expression.parse
This commit is contained in:
@@ -52,11 +52,18 @@ module Liquid
|
|||||||
case token[0]
|
case token[0]
|
||||||
when :string
|
when :string
|
||||||
string
|
string
|
||||||
|
when :number
|
||||||
|
number
|
||||||
else
|
else
|
||||||
parse_expression(expression_string)
|
parse_expression(expression_string)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def number
|
||||||
|
num = consume(:number)
|
||||||
|
Expression.parse_number(num)
|
||||||
|
end
|
||||||
|
|
||||||
def string
|
def string
|
||||||
consume(:string)[1..-2]
|
consume(:string)[1..-2]
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ class ExpressionTest < Minitest::Test
|
|||||||
Liquid::Template.parse(template, expression_cache: cache).render
|
Liquid::Template.parse(template, expression_cache: cache).render
|
||||||
|
|
||||||
assert_equal(
|
assert_equal(
|
||||||
["1", "2", "x", "y"],
|
["x", "y"],
|
||||||
cache.to_a.map { _1[0] }.sort,
|
cache.to_a.map { _1[0] }.sort,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@@ -91,7 +91,7 @@ class ExpressionTest < Minitest::Test
|
|||||||
cache = parse_context.instance_variable_get(:@expression_cache)
|
cache = parse_context.instance_variable_get(:@expression_cache)
|
||||||
|
|
||||||
assert_equal(
|
assert_equal(
|
||||||
["1", "2", "x", "y"],
|
["x", "y"],
|
||||||
cache.to_a.map { _1[0] }.sort,
|
cache.to_a.map { _1[0] }.sort,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@@ -112,7 +112,7 @@ class ExpressionTest < Minitest::Test
|
|||||||
Liquid::Template.parse(template, expression_cache: cache).render
|
Liquid::Template.parse(template, expression_cache: cache).render
|
||||||
|
|
||||||
assert_equal(
|
assert_equal(
|
||||||
["1", "2", "x", "y"],
|
["x", "y"],
|
||||||
cache.to_a.map { _1[0] }.sort,
|
cache.to_a.map { _1[0] }.sort,
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -58,6 +58,14 @@ class ParserUnitTest < Minitest::Test
|
|||||||
assert_equal('"wut"', p.expression_string)
|
assert_equal('"wut"', p.expression_string)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_number
|
||||||
|
p = new_parser('-1 0 1 2.0')
|
||||||
|
assert_equal(-1, p.number)
|
||||||
|
assert_equal(0, p.number)
|
||||||
|
assert_equal(1, p.number)
|
||||||
|
assert_equal(2.0, p.number)
|
||||||
|
end
|
||||||
|
|
||||||
def test_string
|
def test_string
|
||||||
p = new_parser("'s1' \"s2\" 'this \"s3\"' \"that 's4'\"")
|
p = new_parser("'s1' \"s2\" 'this \"s3\"' \"that 's4'\"")
|
||||||
assert_equal('s1', p.string)
|
assert_equal('s1', p.string)
|
||||||
|
|||||||
Reference in New Issue
Block a user