mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
![]() 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
|
||
---|---|---|
.. | ||
capture | ||
api_spec.rb | ||
around_block_scan_spec.rb | ||
block_expand_spec.rb | ||
capture_code_context_spec.rb | ||
clean_document_spec.rb | ||
cli_spec.rb | ||
code_block_spec.rb | ||
code_frontier_spec.rb | ||
code_line_spec.rb | ||
code_search_spec.rb | ||
core_ext_spec.rb | ||
display_invalid_blocks_spec.rb | ||
explain_syntax_spec.rb | ||
lex_all_spec.rb | ||
mini_stringio_spec.rb | ||
pathname_from_message_spec.rb | ||
priority_queue_spec.rb | ||
scan_history_spec.rb |