зеркало из https://github.com/github/ruby.git
[ruby/irb] Make IRB::ColorPrinter.pp compatible with PP.pp
The incompatible interface is not helpful, again if you want to use it as a standalone library, falling it back to PP. Original PP.pp also ends with `out << "\n"`. https://github.com/ruby/irb/commit/4c74c7d84c
This commit is contained in:
Родитель
d6b2b5bd47
Коммит
98bd7e87a0
|
@ -8,7 +8,7 @@ module IRB
|
|||
q = ColorPrinter.new(out, width)
|
||||
q.guard_inspect_key {q.pp obj}
|
||||
q.flush
|
||||
out
|
||||
out << "\n"
|
||||
end
|
||||
|
||||
def text(str, width = nil)
|
||||
|
|
|
@ -116,7 +116,7 @@ module IRB # :nodoc:
|
|||
}
|
||||
Inspector.def_inspector([true, :pp, :pretty_inspect], proc{require "irb/color_printer"}){|v|
|
||||
if IRB.conf[:MAIN_CONTEXT]&.use_colorize?
|
||||
IRB::ColorPrinter.pp(v, '')
|
||||
IRB::ColorPrinter.pp(v, '').chomp
|
||||
else
|
||||
v.pretty_inspect.chomp
|
||||
end
|
||||
|
|
|
@ -158,9 +158,9 @@ module TestIRB
|
|||
skip 'Ripper::Lexer#scan is supported in Ruby 2.7+'
|
||||
end
|
||||
{
|
||||
1 => "#{BLUE}#{BOLD}1#{CLEAR}",
|
||||
Struct.new('IRBTestColorPrinter', :a).new('test') => "#{GREEN}#<struct Struct::IRBTestColorPrinter#{CLEAR} a#{GREEN}=#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{RED}test#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{GREEN}>#{CLEAR}",
|
||||
Ripper::Lexer.new('1').scan => "[#{GREEN}#<Ripper::Lexer::Elem:#{CLEAR} on_int@1:0 END token: #{RED}#{BOLD}\"#{CLEAR}#{RED}1#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{GREEN}>#{CLEAR}]",
|
||||
1 => "#{BLUE}#{BOLD}1#{CLEAR}\n",
|
||||
Struct.new('IRBTestColorPrinter', :a).new('test') => "#{GREEN}#<struct Struct::IRBTestColorPrinter#{CLEAR} a#{GREEN}=#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{RED}test#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{GREEN}>#{CLEAR}\n",
|
||||
Ripper::Lexer.new('1').scan => "[#{GREEN}#<Ripper::Lexer::Elem:#{CLEAR} on_int@1:0 END token: #{RED}#{BOLD}\"#{CLEAR}#{RED}1#{CLEAR}#{RED}#{BOLD}\"#{CLEAR}#{GREEN}>#{CLEAR}]\n",
|
||||
}.each do |object, result|
|
||||
actual = with_term { IRB::ColorPrinter.pp(object, '') }
|
||||
assert_equal(result, actual, "Case: IRB::ColorPrinter.pp(#{object.inspect}, '')")
|
||||
|
|
Загрузка…
Ссылка в новой задаче