Skip to content

Commit

Permalink
add name attribute to Template for more flexibility to set context's …
Browse files Browse the repository at this point in the history
…template name
  • Loading branch information
ggmichaelgo committed Feb 27, 2023
1 parent 0fe4a5d commit 9a2abd2
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 12 deletions.
7 changes: 7 additions & 0 deletions lib/liquid/partial_cache.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,13 @@ def self.load(template_name, context:, parse_context:)
template = template_factory.for(template_name)

partial = template.parse(source, parse_context)

partial.name ||= if Template.file_system.respond_to?(:actual_template_name)
Template.file_system.actual_template_name(template_name)
else
template_name
end

cached_partials[template_name] = partial
ensure
parse_context.partial = false
Expand Down
6 changes: 1 addition & 5 deletions lib/liquid/tags/include.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,7 @@ def render_to_output_buffer(context, output)
old_partial = context.partial

begin
context.template_name = if Template.file_system.respond_to?(:actual_template_name)
Template.file_system.actual_template_name(template_name).delete_suffix('.liquid')
else
template_name
end
context.template_name = partial.name if partial.name

context.partial = true
context.stack do
Expand Down
6 changes: 1 addition & 5 deletions lib/liquid/tags/render.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,7 @@ def render_tag(context, output)
render_partial_func = ->(var, forloop) {
inner_context = context.new_isolated_subcontext

inner_context.template_name = if Template.file_system.respond_to?(:actual_template_name)
Template.file_system.actual_template_name(template_name).delete_suffix('.liquid')
else
template_name
end
inner_context.template_name = partial.name if partial.name

inner_context.partial = true
inner_context['forloop'] = forloop if forloop
Expand Down
2 changes: 1 addition & 1 deletion lib/liquid/template.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ module Liquid
# template.render('user_name' => 'bob')
#
class Template
attr_accessor :root
attr_accessor :root, :name
attr_reader :resource_limits, :warnings

class TagRegistry
Expand Down
2 changes: 1 addition & 1 deletion test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,6 @@ def read_template_file(template_name)
end

def actual_template_name(template_name)
@snippets[template_name][:actual_template_name]
@snippets[template_name][:actual_template_name].delete_suffix(".liquid")
end
end

0 comments on commit 9a2abd2

Please sign in to comment.