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