Merge pull request #734 from Shopify/concat-liquid-error

Raise a Liquid::Error when a non-array is passed into the concat filter.
This commit is contained in:
Dylan Thacker-Smith
2016-03-31 15:47:43 -04:00
2 changed files with 5 additions and 3 deletions

View File

@@ -216,6 +216,9 @@ module Liquid
end
def concat(input, array)
unless array.respond_to?(:to_ary)
raise ArgumentError.new("concat filter requires an array argument")
end
InputIterator.new(input).concat(array)
end
@@ -370,7 +373,7 @@ module Liquid
end
def concat(args)
to_a.concat args
to_a.concat(args)
end
def reverse

View File

@@ -463,8 +463,7 @@ class StandardFiltersTest < Minitest::Test
assert_equal [1, 2, 'a'], @filters.concat([1, 2], ['a'])
assert_equal [1, 2, 10], @filters.concat([1, 2], [10])
assert_raises(TypeError) do
# no implicit conversion of Fixnum into Array
assert_raises(Liquid::ArgumentError, "concat filter requires an array argument") do
@filters.concat([1, 2], 10)
end
end