From 407a8e5b0f7fa0cfeeb24d59700f7b069df324aa Mon Sep 17 00:00:00 2001 From: Ieva Grazuleviciute Date: Fri, 20 Oct 2023 11:42:54 +0300 Subject: [PATCH] Fix for custom tag rendering --- lib/liquid/tag.rb | 3 ++- test/unit/tag_unit_test.rb | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/liquid/tag.rb b/lib/liquid/tag.rb index 2f7bc301..8303a723 100644 --- a/lib/liquid/tag.rb +++ b/lib/liquid/tag.rb @@ -54,7 +54,8 @@ module Liquid # of the `render_to_output_buffer` method will become the default and the `render` # method will be removed. def render_to_output_buffer(context, output) - output << render(context) + render_result = render(context) + output << render_result if render_result output end diff --git a/test/unit/tag_unit_test.rb b/test/unit/tag_unit_test.rb index b814b1b7..7f9b490c 100644 --- a/test/unit/tag_unit_test.rb +++ b/test/unit/tag_unit_test.rb @@ -20,4 +20,13 @@ class TagUnitTest < Minitest::Test tag = Tag.parse("some_tag", "", Tokenizer.new(""), ParseContext.new) assert_equal('some_tag', tag.tag_name) end + + class CustomTag < Liquid::Tag + def render(_context); end + end + + def test_tag_render_to_output_buffer_nil_value + custom_tag = CustomTag.parse("some_tag", "", Tokenizer.new(""), ParseContext.new) + assert_equal('some string', custom_tag.render_to_output_buffer(Context.new, "some string")) + end end