From cda431f5388e8359532998c7fbf5fa615ce6d45e Mon Sep 17 00:00:00 2001 From: toshimaru Date: Mon, 20 Nov 2023 08:47:52 +0900 Subject: [PATCH] [ruby/rdoc] fix: fix `NoMethodError` when `token_stream` is nil The change in #1055 might be a breaking change. So, just simply wrap `token_stream` with `Array` https://github.com/ruby/rdoc/commit/d8c19d7fa1 Co-authored-by: Jonathan Hefner --- lib/rdoc/token_stream.rb | 4 ++-- test/rdoc/test_rdoc_token_stream.rb | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/rdoc/token_stream.rb b/lib/rdoc/token_stream.rb index 1ff4b0d09eb96e..ea8d9417ccebcd 100644 --- a/lib/rdoc/token_stream.rb +++ b/lib/rdoc/token_stream.rb @@ -105,14 +105,14 @@ def pop_token # Current token stream def token_stream - @token_stream || [] + @token_stream end ## # Returns a string representation of the token stream def tokens_to_s - token_stream.compact.map { |token| token[:text] }.join '' + Array(token_stream).compact.map { |token| token[:text] }.join '' end end diff --git a/test/rdoc/test_rdoc_token_stream.rb b/test/rdoc/test_rdoc_token_stream.rb index dafbe22323cfb7..4a0ddb9fecd0fe 100644 --- a/test/rdoc/test_rdoc_token_stream.rb +++ b/test/rdoc/test_rdoc_token_stream.rb @@ -39,6 +39,13 @@ def test_class_to_html_empty assert_equal '', RDoc::TokenStream.to_html([]) end + def test_token_stream + foo = Class.new do + include RDoc::TokenStream + end.new + assert_equal nil, foo.token_stream + end + def test_tokens_to_s foo = Class.new do include RDoc::TokenStream