mirror of
https://github.com/Shopify/liquid.git
synced 2026-10-04 01:25:14 -07:00
Fix .include? method on Enumerable drops, used by "contains" conditions
This commit is contained in:
+1
-1
@@ -59,7 +59,7 @@ module Liquid
|
|||||||
blacklist = (Liquid::Drop.public_instance_methods + [:each]).map(&:to_s)
|
blacklist = (Liquid::Drop.public_instance_methods + [:each]).map(&:to_s)
|
||||||
if include?(Enumerable)
|
if include?(Enumerable)
|
||||||
blacklist += Enumerable.public_instance_methods.map(&:to_s)
|
blacklist += Enumerable.public_instance_methods.map(&:to_s)
|
||||||
blacklist -= [:sort, :count, :first, :min, :max].map(&:to_s)
|
blacklist -= [:sort, :count, :first, :min, :max, :include?].map(&:to_s)
|
||||||
end
|
end
|
||||||
whitelist = [:to_liquid] + (public_instance_methods.map(&:to_s) - blacklist.map(&:to_s))
|
whitelist = [:to_liquid] + (public_instance_methods.map(&:to_s) - blacklist.map(&:to_s))
|
||||||
@invokable_methods = Set.new(whitelist.map(&:to_s))
|
@invokable_methods = Set.new(whitelist.map(&:to_s))
|
||||||
|
|||||||
@@ -220,6 +220,8 @@ class DropsTest < Test::Unit::TestCase
|
|||||||
assert_equal "3", Liquid::Template.parse("{{collection[\"#{method}\"]}}").render('collection' => EnumerableDrop.new)
|
assert_equal "3", Liquid::Template.parse("{{collection[\"#{method}\"]}}").render('collection' => EnumerableDrop.new)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_equal "yes", Liquid::Template.parse("{% if collection contains 3 %}yes{% endif %}").render('collection' => RealEnumerableDrop.new)
|
||||||
|
|
||||||
[ :min, :first ].each do |method|
|
[ :min, :first ].each do |method|
|
||||||
assert_equal "1", Liquid::Template.parse("{{collection.#{method}}}").render('collection' => RealEnumerableDrop.new)
|
assert_equal "1", Liquid::Template.parse("{{collection.#{method}}}").render('collection' => RealEnumerableDrop.new)
|
||||||
assert_equal "1", Liquid::Template.parse("{{collection[\"#{method}\"]}}").render('collection' => RealEnumerableDrop.new)
|
assert_equal "1", Liquid::Template.parse("{{collection[\"#{method}\"]}}").render('collection' => RealEnumerableDrop.new)
|
||||||
|
|||||||
Reference in New Issue
Block a user