summaryrefslogtreecommitdiff
path: root/lib/syntax_suggest/mini_stringio.rb
AgeCommit message (Collapse)Author
2024-11-15[ruby/syntax_suggest] Explain why class existsSchneems
https://github.com/ruby/syntax_suggest/commit/8c36b0cb35
2024-11-15[ruby/syntax_suggest] Freeze stringsSchneems
https://github.com/ruby/syntax_suggest/commit/b17bf0baca
2024-11-15[ruby/syntax_suggest] Fix missing line break due to puts logicSchneems
In #225 it was reported that the output looks incorrect: ``` $ cat /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb def x.y.z end $ ruby /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb: --> /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb expected a delimiter to close the parametersunexpected '.', ignoring it > 1 def x.y.z > 2 end ``` Specifically: ``` expected a delimiter to close the parametersunexpected '.', ignoring it ``` However this does not show up when executing the debug executable: ``` $ bin/bundle exec exe/syntax_suggest /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb --> /tmp/4a71c7e417cc9eac0971e3a2519b295c/scratch.rb expected a delimiter to close the parameters unexpected '.', ignoring it > 1 def x.y.z > 2 end ``` This is because `exe/syntax_suggest` uses STDOUT.puts while calling `ruby` with the filename uses a fake IO object represented by MiniStringIO. This class was incorrectly not adding a newline to the end of the print. The fix was to move the class to it's own file where it can be tested and then fix the behavior. close https://github.com/ruby/syntax_suggest/pull/225 https://github.com/ruby/syntax_suggest/commit/d2ecd94a3b Co-authored-by: Andy Yong <[email protected]>