From ff6263fd9ddf2d689ecfa8fa7eb1216bfad441a8 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Thu, 8 Dec 2016 03:51:38 +0900 Subject: [PATCH] Avoid calling Ruby 2.4+ String#pretty_print in ColorPrinter Ruby 2.4+ defines String's own pretty_print that prints multiline Strings prettier see: https://bugs.ruby-lang.org/issues/12664 fixes #1585 --- lib/pry/color_printer.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/pry/color_printer.rb b/lib/pry/color_printer.rb index 48bcc1a..ce52b8d 100644 --- a/lib/pry/color_printer.rb +++ b/lib/pry/color_printer.rb @@ -31,7 +31,13 @@ def text(str, width = str.length) end def pp(obj) - super + if String === obj + # Avoid calling Ruby 2.4+ String#pretty_print that prints multiline + # Strings prettier + Object.instance_method(:pretty_print).bind(obj).call + else + super + end rescue => e raise if e.is_a? Pry::Pager::StopPaging begin