Raise liquid argument error instead of ruby argument

Wrong number of arguments for filter invocation now raises
Liuqid::ArgumentError but not ::ArgumentError
This commit is contained in:
Bogdan Gusiev
2014-02-21 21:12:42 +02:00
parent fa179e811d
commit f23e69d565
3 changed files with 10 additions and 0 deletions

View File

@@ -21,6 +21,7 @@
* Fix clashing method names in enumerable drops, see #238 [Florian Weingarten, fw42]
* Make map filter work on enumerable drops, see #233 [Florian Weingarten, fw42]
* Improved whitespace stripping for blank blocks, related to #216 [Florian Weingarten, fw42]
* Raise `Liquid::ArgumentError` instead of `::ArgumentError` when filter has wrong number of arguments #309 [Bogdan Gusiev, bogdan]
## 2.6.0 / 2013-11-25 / branch "2.6-stable"

View File

@@ -52,6 +52,8 @@ module Liquid
else
args.first
end
rescue ::ArgumentError => e
raise Liquid::ArgumentError.new(e.message)
end
def invokable?(method)

View File

@@ -22,6 +22,13 @@ class StrainerTest < Test::Unit::TestCase
assert_equal "public", strainer.invoke("public_filter")
end
def test_stainer_raises_argument_error
strainer = Strainer.create(nil)
assert_raises(Liquid::ArgumentError) do
strainer.invoke("public_filter", 1)
end
end
def test_strainer_only_invokes_public_filter_methods
strainer = Strainer.create(nil)
assert_equal false, strainer.invokable?('__test__')