mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-03 09:05:13 -07:00
fix: Clear the strainer cache when a global filter is added (#826)
This commit is contained in:
committed by
GitHub
parent
86944fe7b7
commit
b146b49f46
@@ -39,6 +39,7 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.global_filter(filter)
|
def self.global_filter(filter)
|
||||||
|
@@strainer_class_cache.clear
|
||||||
@@global_strainer.add_filter(filter)
|
@@global_strainer.add_filter(filter)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -133,4 +133,16 @@ class StrainerUnitTest < Minitest::Test
|
|||||||
strainer.class.add_filter(PublicMethodOverrideFilter)
|
strainer.class.add_filter(PublicMethodOverrideFilter)
|
||||||
assert strainer.class.filter_methods.include?('public_filter')
|
assert strainer.class.filter_methods.include?('public_filter')
|
||||||
end
|
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
|
end # StrainerTest
|
||||||
|
|||||||
Reference in New Issue
Block a user