diff --git a/lib/liquid/tags/case.rb b/lib/liquid/tags/case.rb index 43d4b3b..ccd69bd 100644 --- a/lib/liquid/tags/case.rb +++ b/lib/liquid/tags/case.rb @@ -21,7 +21,7 @@ module Liquid def parse(tokens) body = case_body = new_body body = @blocks.last.attachment while parse_body(body, tokens) - @blocks.each do |condition| + @blocks.reverse_each do |condition| body = condition.attachment unless body.frozen? body.remove_blank_strings if blank? diff --git a/lib/liquid/tags/for.rb b/lib/liquid/tags/for.rb index 2c80a58..328ba02 100644 --- a/lib/liquid/tags/for.rb +++ b/lib/liquid/tags/for.rb @@ -63,11 +63,11 @@ module Liquid parse_body(@else_block, tokens) end if blank? - @for_block.remove_blank_strings @else_block&.remove_blank_strings + @for_block.remove_blank_strings end - @for_block.freeze @else_block&.freeze + @for_block.freeze end def nodelist diff --git a/lib/liquid/tags/if.rb b/lib/liquid/tags/if.rb index b4a680a..44aea61 100644 --- a/lib/liquid/tags/if.rb +++ b/lib/liquid/tags/if.rb @@ -31,7 +31,7 @@ module Liquid def parse(tokens) while parse_body(@blocks.last.attachment, tokens) end - @blocks.each do |block| + @blocks.reverse_each do |block| block.attachment.remove_blank_strings if blank? block.attachment.freeze end