Fix empty? semantics and string first/last for empty strings

- nil is NOT empty (but IS blank) - matches Shopify production
- String first/last returns '' for empty strings, not nil - matches ActiveSupport
- Add test for nil not being empty
This commit is contained in:
Tobi Lutke
2026-01-01 22:06:22 -05:00
parent b0fb0ad83f
commit ef13b2dfd5
5 changed files with 21 additions and 7 deletions
+1 -2
View File
@@ -160,10 +160,9 @@ module Liquid
end
# Implement empty? semantics
# Note: nil is NOT empty (but IS blank). empty? checks if a collection has zero elements.
def liquid_empty?(value)
case value
when NilClass
true
when String, Array, Hash
value.empty?
else