diff --git a/lib/liquid/drop.rb b/lib/liquid/drop.rb index 2ad33c85..bac1b3a2 100644 --- a/lib/liquid/drop.rb +++ b/lib/liquid/drop.rb @@ -55,12 +55,12 @@ module Liquid # Check for method existence without invoking respond_to?, which creates symbols def self.invokable?(method_name) unless @invokable_methods - blacklist = Liquid::Drop.public_instance_methods + [:each] - if include?(Enumerable) - blacklist += Enumerable.public_instance_methods - blacklist -= [:sort, :count, :first, :min, :max] - end # Ruby 1.8 compatibility: call to_s on method names (which are strings in 1.8, but already symbols in 1.9) + blacklist = (Liquid::Drop.public_instance_methods + [:each]).map(&:to_s) + if include?(Enumerable) + blacklist += Enumerable.public_instance_methods.map(&:to_s) + blacklist -= [:sort, :count, :first, :min, :max].map(&:to_s) + end whitelist = [:to_liquid] + (public_instance_methods.map(&:to_s) - blacklist.map(&:to_s)) @invokable_methods = Set.new(whitelist.map(&:to_s)) end