mirror of
https://github.com/Shopify/liquid.git
synced 2025-07-17 00:00:10 -04:00
Compare commits
2 Commits
cca24a2226
...
c44d1d9193
Author | SHA1 | Date | |
---|---|---|---|
|
c44d1d9193 | ||
|
dd7bbf26bc |
@ -4,7 +4,8 @@ module Liquid
|
|||||||
class PartialCache
|
class PartialCache
|
||||||
def self.load(template_name, context:, parse_context:)
|
def self.load(template_name, context:, parse_context:)
|
||||||
cached_partials = context.registers[:cached_partials]
|
cached_partials = context.registers[:cached_partials]
|
||||||
cached = cached_partials[template_name]
|
cache_key = "#{template_name}:#{parse_context.error_mode}"
|
||||||
|
cached = cached_partials[cache_key]
|
||||||
return cached if cached
|
return cached if cached
|
||||||
|
|
||||||
file_system = context.registers[:file_system]
|
file_system = context.registers[:file_system]
|
||||||
@ -24,7 +25,7 @@ module Liquid
|
|||||||
|
|
||||||
partial.name ||= template_name
|
partial.name ||= template_name
|
||||||
|
|
||||||
cached_partials[template_name] = partial
|
cached_partials[cache_key] = partial
|
||||||
ensure
|
ensure
|
||||||
parse_context.partial = false
|
parse_context.partial = false
|
||||||
end
|
end
|
||||||
|
@ -174,4 +174,27 @@ class PartialCacheUnitTest < Minitest::Test
|
|||||||
|
|
||||||
assert_equal('some/path/my_partial', partial.name)
|
assert_equal('some/path/my_partial', partial.name)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_includes_error_mode_into_template_cache
|
||||||
|
template_factory = StubTemplateFactory.new
|
||||||
|
context = Liquid::Context.build(
|
||||||
|
registers: {
|
||||||
|
file_system: StubFileSystem.new('my_partial' => 'my partial body'),
|
||||||
|
template_factory: template_factory,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
[:lax, :warn, :strict].each do |error_mode|
|
||||||
|
Liquid::PartialCache.load(
|
||||||
|
'my_partial',
|
||||||
|
context: context,
|
||||||
|
parse_context: Liquid::ParseContext.new(error_mode: error_mode),
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_equal(
|
||||||
|
["my_partial:lax", "my_partial:warn", "my_partial:strict"],
|
||||||
|
context.registers[:cached_partials].keys,
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user