diff --git a/lib/liquid/variable_lookup.rb b/lib/liquid/variable_lookup.rb index 743d573f..e5d273de 100644 --- a/lib/liquid/variable_lookup.rb +++ b/lib/liquid/variable_lookup.rb @@ -177,9 +177,10 @@ module Liquid # If object is a hash- or array-like object we look for the # presence of the key and if its available we return it - if object.respond_to?(:[]) && - ((object.respond_to?(:key?) && object.key?(key)) || - (object.respond_to?(:fetch) && key.is_a?(Integer))) + if object.instance_of?(Hash) ? object.key?(key) : + (object.respond_to?(:[]) && + ((object.respond_to?(:key?) && object.key?(key)) || + (object.respond_to?(:fetch) && key.is_a?(Integer)))) # if its a proc we will replace the entry with the proc object = context.lookup_and_evaluate(object, key)