summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/pp.rb15
2 files changed, 21 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 2fb6ec3b65..40ac5ffe0c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Oct 11 16:38:32 2016 Tanaka Akira <akr@fsij.org>
+
+ * lib/pp.rb (String#pretty_print): Defined to print a string as
+ multiple lines.
+ [ruby-core:76800] [Feature#12664] proposed by Petr Chalupa.
+
Mon Oct 10 15:22:27 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ruby.c (open_load_file): bind the open fd to an IO instance
diff --git a/lib/pp.rb b/lib/pp.rb
index 9678774b8c..5356b7ce25 100644
--- a/lib/pp.rb
+++ b/lib/pp.rb
@@ -418,6 +418,21 @@ class Range # :nodoc:
end
end
+class String
+ def pretty_print(q)
+ lines = self.lines
+ if lines.size > 1
+ q.group(0, '', '') do
+ q.seplist(lines, lambda { q.text ' +'; q.breakable }) do |v|
+ q.pp v
+ end
+ end
+ else
+ q.text inspect
+ end
+ end
+end
+
class File < IO # :nodoc:
class Stat # :nodoc:
def pretty_print(q) # :nodoc: