mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-02 00:25:12 -07:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
448d98ce2f |
@@ -49,14 +49,14 @@ module Liquid
|
|||||||
def render_tag(context, output)
|
def render_tag(context, output)
|
||||||
template = context.evaluate(@template_name_expr)
|
template = context.evaluate(@template_name_expr)
|
||||||
|
|
||||||
if @template_name_expr.is_a?(String)
|
if template.respond_to?(:to_partial)
|
||||||
partial = PartialCache.load(template, context: context, parse_context: parse_context)
|
|
||||||
template_name = partial.name
|
|
||||||
context_variable_name = @alias_name || template_name.split('/').last
|
|
||||||
elsif template.respond_to?(:to_partial) && template.respond_to?(:name)
|
|
||||||
partial = template.to_partial
|
partial = template.to_partial
|
||||||
template_name = template.filename
|
template_name = template.filename
|
||||||
context_variable_name = @alias_name || template.name
|
context_variable_name = @alias_name || template.name
|
||||||
|
elsif @template_name_expr.is_a?(String)
|
||||||
|
partial = PartialCache.load(template, context: context, parse_context: parse_context)
|
||||||
|
template_name = partial.name
|
||||||
|
context_variable_name = @alias_name || template_name.split('/').last
|
||||||
else
|
else
|
||||||
raise ::ArgumentError
|
raise ::ArgumentError
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -28,12 +28,18 @@ module Liquid
|
|||||||
def render_to_output_buffer(context, output)
|
def render_to_output_buffer(context, output)
|
||||||
snippet_drop = SnippetDrop.new(@body, @to, context.template_name)
|
snippet_drop = SnippetDrop.new(@body, @to, context.template_name)
|
||||||
context.scopes.last[@to] = snippet_drop
|
context.scopes.last[@to] = snippet_drop
|
||||||
context.resource_limits.increment_assign_score(1)
|
context.resource_limits.increment_assign_score(assign_score_of(snippet_drop))
|
||||||
output
|
output
|
||||||
end
|
end
|
||||||
|
|
||||||
def blank?
|
def blank?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def assign_score_of(snippet_drop)
|
||||||
|
snippet_drop.body.nodelist.sum { |node| node.to_s.bytesize }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1081,7 +1081,7 @@ class SnippetTest < Minitest::Test
|
|||||||
def test_increment_assign_score_by_bytes_not_characters
|
def test_increment_assign_score_by_bytes_not_characters
|
||||||
t = Template.parse("{% snippet foo %}すごい{% endsnippet %}")
|
t = Template.parse("{% snippet foo %}すごい{% endsnippet %}")
|
||||||
t.render!
|
t.render!
|
||||||
assert_equal(1, t.resource_limits.assign_score)
|
assert_equal(9, t.resource_limits.assign_score)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user