« Return to Thread: [ruby-dev:38695] [feature:trunk] let irb use pretty_inspect if possible

[ruby-dev:38695] [feature:trunk] let irb use pretty_inspect if possible

by Yusuke ENDOH :: Rate this Message:

Reply to Author | View in Thread

遠藤です。

irb メンテナの石塚さん:

pretty_inspect が使用可能なときは、irb の結果出力にそれを使うのは
どうでしょうか。


irb(main):001:0> ["foo bar baz"] * 6
=> ["foo bar baz", "foo bar baz", "foo bar baz", "foo bar baz", "foo
bar baz", "foo bar baz"]
irb(main):002:0> require "pp"
=> true
irb(main):003:0> ["foo bar baz"] * 6
=> ["foo bar baz",
 "foo bar baz",
 "foo bar baz",
 "foo bar baz",
 "foo bar baz",
 "foo bar baz"]


本当の目的は「Object#p と同様に pp にも引数を返してほしい」という
一年前の話 ([ruby-dev:34830] 、[ruby-dev:34833]) の続きで、田中さん
からは「irb が変われば pp も変えてよい」という条件付採録を (さっき)
貰いました。

よろしくお願いします。


Index: lib/irb.rb
===================================================================
--- lib/irb.rb (revision 23808)
+++ lib/irb.rb (working copy)
@@ -299,7 +299,13 @@

     def output_value
       if @context.inspect?
-        printf @context.return_format, @context.last_value.inspect
+        value = @context.last_value
+        if value.respond_to?(:pretty_inspect)
+          str = value.pretty_inspect.chomp
+        else
+          str = value.inspect
+        end
+        printf @context.return_format, str
       else
         printf @context.return_format, @context.last_value
       end

--
Yusuke ENDOH <mame@...>

 « Return to Thread: [ruby-dev:38695] [feature:trunk] let irb use pretty_inspect if possible