parent
4b675c30cb
commit
451a4d72dd
@ -0,0 +1,32 @@
|
|||||||
|
From ff6263fd9ddf2d689ecfa8fa7eb1216bfad441a8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira Matsuda <ronnie@dio.jp>
|
||||||
|
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
|
@ -0,0 +1,32 @@
|
|||||||
|
From 866ea0b9f983229f53997dd9c87212281683f3df Mon Sep 17 00:00:00 2001
|
||||||
|
From: Akira Matsuda <ronnie@dio.jp>
|
||||||
|
Date: Thu, 8 Dec 2016 03:54:12 +0900
|
||||||
|
Subject: [PATCH] Fixnum and Bignum are unified into Integer since Ruby 2.4
|
||||||
|
|
||||||
|
see: https://bugs.ruby-lang.org/issues/12005
|
||||||
|
---
|
||||||
|
spec/commands/ls_spec.rb | 11 +++++++++--
|
||||||
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/spec/commands/ls_spec.rb b/spec/commands/ls_spec.rb
|
||||||
|
index 0fc489b..d89fcc2 100644
|
||||||
|
--- a/spec/commands/ls_spec.rb
|
||||||
|
+++ b/spec/commands/ls_spec.rb
|
||||||
|
@@ -48,8 +48,15 @@
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "immediates" do
|
||||||
|
- it "should work on Fixnum" do
|
||||||
|
- pry_eval("ls 5").should =~ /Fixnum#methods:.*modulo/m
|
||||||
|
+ # Ruby 2.4+
|
||||||
|
+ if 5.class.name == 'Integer'
|
||||||
|
+ it "should work on Integer" do
|
||||||
|
+ expect(pry_eval("ls 5")).to match(/Integer#methods:.*modulo/m)
|
||||||
|
+ end
|
||||||
|
+ else
|
||||||
|
+ it "should work on Fixnum" do
|
||||||
|
+ expect(pry_eval("ls 5")).to match(/Fixnum#methods:.*modulo/m)
|
||||||
|
+ end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,44 @@
|
|||||||
|
From 81fc96f73bdb26901c75838262779002bf6e14c5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: rpag <rpag@singletonclass.com>
|
||||||
|
Date: Mon, 12 Jan 2015 20:18:59 +0000
|
||||||
|
Subject: [PATCH] support custom implementation of BasicObject#inspect.
|
||||||
|
|
||||||
|
If BasicObject or a subclass of BasicObject implements #inspect,
|
||||||
|
we will try to use its return value as output but if that fails,
|
||||||
|
we'll fallback on __id__.
|
||||||
|
|
||||||
|
fixes #1341
|
||||||
|
---
|
||||||
|
lib/pry/color_printer.rb | 19 +++++++++++--------
|
||||||
|
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/lib/pry/color_printer.rb b/lib/pry/color_printer.rb
|
||||||
|
index 218a821..48bcc1a 100644
|
||||||
|
--- a/lib/pry/color_printer.rb
|
||||||
|
+++ b/lib/pry/color_printer.rb
|
||||||
|
@@ -34,14 +34,17 @@ def pp(obj)
|
||||||
|
super
|
||||||
|
rescue => e
|
||||||
|
raise if e.is_a? Pry::Pager::StopPaging
|
||||||
|
-
|
||||||
|
- # Read the class name off of the singleton class to provide a default
|
||||||
|
- # inspect.
|
||||||
|
- singleton = class << obj; self; end
|
||||||
|
- ancestors = Pry::Method.safe_send(singleton, :ancestors)
|
||||||
|
- klass = ancestors.reject { |k| k == singleton }.first
|
||||||
|
- obj_id = obj.__id__.to_s(16) rescue 0
|
||||||
|
- str = "#<#{klass}:0x#{obj_id}>"
|
||||||
|
+ begin
|
||||||
|
+ str = obj.inspect
|
||||||
|
+ rescue Exception
|
||||||
|
+ # Read the class name off of the singleton class to provide a default
|
||||||
|
+ # inspect.
|
||||||
|
+ singleton = class << obj; self; end
|
||||||
|
+ ancestors = Pry::Method.safe_send(singleton, :ancestors)
|
||||||
|
+ klass = ancestors.reject { |k| k == singleton }.first
|
||||||
|
+ obj_id = obj.__id__.to_s(16) rescue 0
|
||||||
|
+ str = "#<#{klass}:0x#{obj_id}>"
|
||||||
|
+ end
|
||||||
|
|
||||||
|
text highlight_object_literal(str)
|
||||||
|
end
|
Loading…
Reference in new issue