mirror of
https://github.com/kemko/liquid.git
synced 2026-01-02 16:25:42 +03:00
When sorting an empty array with the "sort" filter, it returns nil instead of []. This confuses subsequent filters in the chain that expect an array. For example, when followed by the "map" filter, it produces an array containing one nil element: [nil]. I could special-case the nil return value, but that would be more cumbersome than making sure "sort" always returns an array. Add a case to the "sort" method to return [] if the array is empty, before performing any checks on ary.first that assume a non-empty array. There is still a danger of returning nil if the first item in the array is nil and it is non-empty, but I'm not sure how better to handle that case. Apply a similar fix to sort_natural, uniq, and compact filters.