Files
Earlopain a590a7051f [ruby/syntax_suggest] Nodoc implementation details
Just leaves `SyntaxSuggest.handle_error` and `SyntaxSuggest::VERSION` visible.

Removes some public/private annotations since ony public stuff is now documented.

https://github.com/ruby/syntax_suggest/commit/18c62ce100
2026-09-15 20:03:37 +00:00

29 lines
751 B
Ruby

# frozen_string_literal: true
module SyntaxSuggest
# Acts like a StringIO with reduced API, but without having to require that
# class.
#
# The original codebase emitted directly to $stderr, but now SyntaxError#detailed_message
# needs a string output. To accomplish that we kept the original print infrastructure in place and
# added this class to accumulate the print output into a string.
class MiniStringIO # :nodoc:
EMPTY_ARG = Object.new
def initialize(isatty: $stderr.isatty)
@string = +""
@isatty = isatty
end
attr_reader :isatty
def puts(value = EMPTY_ARG, **)
if !value.equal?(EMPTY_ARG)
@string << value
end
@string << $/
end
attr_reader :string
end
end