Merge pull request #519 from Shopify/remove-filter-method-blacklist

Allow filters to redefine Object methods to make them invokable.
This commit is contained in:
Dylan Thacker-Smith
2015-02-04 18:09:51 -05:00
committed by Dylan Thacker-Smith
parent 95b340a7cf
commit 000d0c911b
5 changed files with 50 additions and 50 deletions
+13
View File
@@ -25,6 +25,12 @@ end
class FiltersTest < Minitest::Test
include Liquid
module OverrideObjectMethodFilter
def tap(input)
"tap overridden"
end
end
def setup
@context = Context.new
end
@@ -105,6 +111,13 @@ class FiltersTest < Minitest::Test
output = Variable.new(%! 'hello %{first_name}, %{last_name}' | substitute: first_name: surname, last_name: 'doe' !).render(@context)
assert_equal 'hello john, doe', output
end
def test_override_object_method_in_filter
assert_equal "tap overridden", Template.parse("{{var | tap}}").render!({ 'var' => 1000 }, :filters => [OverrideObjectMethodFilter])
# tap still treated as a non-existent filter
assert_equal "1000", Template.parse("{{var | tap}}").render!({ 'var' => 1000 })
end
end
class FiltersInTemplate < Minitest::Test