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