mirror of
https://github.com/Shopify/liquid.git
synced 2025-11-13 00:00:48 -05:00
fix: Clear the strainer cache when a global filter is added (#826)
This commit is contained in:
parent
86944fe7b7
commit
b146b49f46
@ -39,6 +39,7 @@ module Liquid
|
||||
end
|
||||
|
||||
def self.global_filter(filter)
|
||||
@@strainer_class_cache.clear
|
||||
@@global_strainer.add_filter(filter)
|
||||
end
|
||||
|
||||
|
||||
@ -133,4 +133,16 @@ class StrainerUnitTest < Minitest::Test
|
||||
strainer.class.add_filter(PublicMethodOverrideFilter)
|
||||
assert strainer.class.filter_methods.include?('public_filter')
|
||||
end
|
||||
|
||||
module LateAddedFilter
|
||||
def late_added_filter(input)
|
||||
"filtered"
|
||||
end
|
||||
end
|
||||
|
||||
def test_global_filter_clears_cache
|
||||
assert_equal 'input', Strainer.create(nil).invoke('late_added_filter', 'input')
|
||||
Strainer.global_filter(LateAddedFilter)
|
||||
assert_equal 'filtered', Strainer.create(nil).invoke('late_added_filter', 'input')
|
||||
end
|
||||
end # StrainerTest
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user