mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Fix rubocop offenses
This commit is contained in:
@@ -108,12 +108,12 @@ module Liquid
|
||||
next unless token.start_with?("{%")
|
||||
|
||||
j = 2
|
||||
j += 1 if token.getbyte(j) == 45 # '-'
|
||||
j += 1 if token.getbyte(j) == 45 # '-'
|
||||
j += 1 while token.getbyte(j) == 32 # ' '
|
||||
|
||||
if token.getbyte(j) == 101 && # 'e'
|
||||
token.getbyte(j + 1) == 110 && # 'n'
|
||||
token.getbyte(j + 2) == 100 # 'd'
|
||||
if token.getbyte(j) == 101 && # 'e'
|
||||
token.getbyte(j + 1) == 110 && # 'n'
|
||||
token.getbyte(j + 2) == 100 # 'd'
|
||||
has_any_end_tag = true
|
||||
break
|
||||
end
|
||||
@@ -133,7 +133,7 @@ module Liquid
|
||||
|
||||
# Advance past "{%", optional "-", and spaces to reach tag name
|
||||
j = 2
|
||||
j += 1 if token.getbyte(j) == 45 # '-'
|
||||
j += 1 if token.getbyte(j) == 45 # '-'
|
||||
j += 1 while token.getbyte(j) == 32 # ' '
|
||||
|
||||
# Extract tag name: scan word characters [a-zA-Z0-9_]
|
||||
@@ -142,18 +142,18 @@ module Liquid
|
||||
while byte && ((byte >= 97 && byte <= 122) || # a-z
|
||||
(byte >= 65 && byte <= 90) || # A-Z
|
||||
(byte >= 48 && byte <= 57) || # 0-9
|
||||
byte == 95) # _
|
||||
byte == 95) # _
|
||||
j += 1
|
||||
byte = token.getbyte(j)
|
||||
end
|
||||
next if j == name_start # no tag name found
|
||||
next if j == name_start # no tag name found
|
||||
|
||||
name = token.byteslice(name_start, j - name_start)
|
||||
|
||||
if name.start_with?("end")
|
||||
base = name.byteslice(3, name.bytesize - 3)
|
||||
stack = open_stacks[base]
|
||||
if stack.length > 0
|
||||
unless stack.empty?
|
||||
open_pos = stack.pop
|
||||
@has_matching_end_tag[open_pos] = true
|
||||
end
|
||||
|
||||
@@ -151,14 +151,12 @@ Benchmark.ips do |x|
|
||||
x.config(time: 10, warmup: 5)
|
||||
|
||||
TEMPLATES.each do |label, source|
|
||||
begin
|
||||
Liquid::Template.parse(source, environment: env)
|
||||
x.report("parse: #{label}") do
|
||||
Liquid::Template.parse(source, environment: env)
|
||||
x.report("parse: #{label}") do
|
||||
Liquid::Template.parse(source, environment: env)
|
||||
end
|
||||
rescue Liquid::SyntaxError => e
|
||||
puts " Skipping '#{label}' - #{e.message}"
|
||||
end
|
||||
rescue Liquid::SyntaxError => e
|
||||
puts " Skipping '#{label}' - #{e.message}"
|
||||
end
|
||||
|
||||
x.compare!
|
||||
|
||||
@@ -108,7 +108,7 @@ class TokenizerTest < Minitest::Test
|
||||
|
||||
def test_matching_end_tag_handles_nested_same_name_tags
|
||||
tokenizer = new_tokenizer(
|
||||
'{% render "a" %}{% render "b" %}inner{% endrender %}outer{% endrender %}'
|
||||
'{% render "a" %}{% render "b" %}inner{% endrender %}outer{% endrender %}',
|
||||
)
|
||||
tokenizer.send(:shift) # {% render "a" %}
|
||||
# Should find the outer endrender (depth-aware), not the inner one
|
||||
@@ -126,7 +126,7 @@ class TokenizerTest < Minitest::Test
|
||||
def test_matching_end_tag_returns_false_when_only_nested_end_tag
|
||||
# Only a nested endrender exists (consumed by the inner render), no outer endrender
|
||||
tokenizer = new_tokenizer(
|
||||
'{% render "a" %}{% render "b" %}{% endrender %}'
|
||||
'{% render "a" %}{% render "b" %}{% endrender %}',
|
||||
)
|
||||
tokenizer.send(:shift) # {% render "a" %}
|
||||
# The endrender belongs to the inner render (depth 1 -> 0), not the outer (depth 0)
|
||||
|
||||
Reference in New Issue
Block a user