Improve variable matching

This commit is contained in:
Mike Angell
2019-10-08 07:24:32 +11:00
parent efaec29fa6
commit 60b4182b7e
2 changed files with 4 additions and 8 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ module Liquid
# {% include 'product' for products %}
#
class Include < Tag
SYNTAX = /(#{QuotedFragment}+)(\s+(?:with|for)\s+(#{QuotedFragment}+))?(\s+(?:as)\s+(#{VariableSignature}+))?/o
SYNTAX = /(#{QuotedFragment}+)(\s+(?:with|for)\s+(#{QuotedFragment}+))?(\s+(?:as)\s+(#{VariableSegment}+))?/o
Syntax = SYNTAX
attr_reader :template_name_expr, :variable_name_expr, :attributes
+3 -7
View File
@@ -2,7 +2,7 @@
module Liquid
class Render < Tag
SYNTAX = /(#{QuotedString}+)(\s+(?:with|for)\s+(#{QuotedFragment}+))?(\s+(?:as)\s+(#{VariableSignature}+))?/o
SYNTAX = /(#{QuotedString}+)(\s+(?:with|for)\s+(#{QuotedFragment}+))?(\s+(?:as)\s+(#{VariableSegment}+))?/o
disable_tags "include"
@@ -43,11 +43,7 @@ module Liquid
context_variable_name = @alias_name || template_name.split('/').last
variable = if @variable_name_expr
context.evaluate(@variable_name_expr)
else
context.find_variable(template_name, raise_on_not_found: false)
end
variable = @variable_name_expr ? context.evaluate(@variable_name_expr) : nil
variable = [variable] unless variable.is_a?(Array)
variable.each do |var|
@@ -57,7 +53,7 @@ module Liquid
@attributes.each do |key, value|
inner_context[key] = context.evaluate(value)
end
inner_context[context_variable_name] = var if @variable_name_expr
inner_context[context_variable_name] = var unless var.nil?
partial.render_to_output_buffer(inner_context, output)
end