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