[#38563] [Bug #1556] irb does not save history from 1.8.7-p83 and later — Nobuhiro IMAI <redmine@...>

Bug #1556: irb does not save history from 1.8.7-p83 and later

11 messages 2009/06/02

[#38571] [Bug #1582] IO.new Raises Other Errors between 1.8 and 1.9 — "ujihisa ." <redmine@...>

Bug #1582: IO.new Raises Other Errors between 1.8 and 1.9

15 messages 2009/06/05

[#38607] [Feature: trunk] GC.stat — SASADA Koichi <ko1@...>

 ささだです.

21 messages 2009/06/14

[#38608] Fixnum#fdiv — Tadayoshi Funaba <tadf@...>

Bignum#fdiv には大きな数である場合の配慮があるようですが、Fixnum ではな

23 messages 2009/06/14
[#38636] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

fdiv では2つの異る解釈が混在しているように見えます。

[#38638] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38639] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> えーと、設計者は「fdivは結果がfloatになるdiv」くらいしか考え

[#38640] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/15

まつもと ゆきひろです

[#38641] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/15

> ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38657] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> > ふむ。「中途半端」というのはfixnumとbignumで食い違うと言う意

[#38659] Re: Fixnum#fdiv — Yukihiro Matsumoto <matz@...> 2009/06/16

まつもと ゆきひろです

[#38660] Re: Fixnum#fdiv — Tadayoshi Funaba <tadf@...> 2009/06/16

> 私が気にしているのは「挙動の理解しやすさ」ですね。

[#38701] [Bug #1676] only last "return" is traced by set_trace_func — _ wanabe <redmine@...>

Bug #1676: only last "return" is traced by set_trace_func

10 messages 2009/06/22

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

From: Yusuke ENDOH <mame@...>
Date: 2009-06-22 20:47:50 UTC
List: ruby-dev #38703
遠藤です。

2009/06/22 0:43 に 石塚圭樹<[email protected]> さんは書きました:
> うーん. require してあると, irbの振る舞いが変わるのはどうかと思います
> が, irb で pp な出力をするモードがあっても良いよなーとは思っていました.

はい。


> コマンドラインオプションもしくは, .irbrc での IRB.CONFの指定で pp な出
> 力になるというのでも良いですよね?
>
> irb --inspect pp
>
> で pp な出力をするかんじです.


たぶんいいと思います。ただ、どうせ pp に特化するのなら、--pp などに
したら短くてうれしいかもしれないです。こんなオプションはどうでしょうか。

  --inspect-method foo: 結果出力の際、inspect の代わりに foo を用いる
  --pp:  -rpp --inspect-method=pretty_inspect と同じ効果

この方針のパッチを作ってみました。
irb の好みや作法にあわなかったらすみません。


Index: lib/irb/context.rb
===================================================================
--- lib/irb/context.rb	(revision 23826)
+++ lib/irb/context.rb	(working copy)
@@ -35,6 +35,7 @@

       @use_readline = IRB.conf[:USE_READLINE]
       @inspect_mode = IRB.conf[:INSPECT_MODE]
+      @inspect_method = IRB.conf[:INSPECT_METHOD]

       self.math_mode = IRB.conf[:MATH_MODE] if IRB.conf[:MATH_MODE]
       self.use_tracer = IRB.conf[:USE_TRACER] if IRB.conf[:USE_TRACER]
@@ -116,6 +117,7 @@

     attr_reader :use_readline
     attr_reader :inspect_mode
+    attr_reader :inspect_method

     attr_reader :prompt_mode
     attr_accessor :prompt_i
Index: lib/irb/lc/ja/help-message
===================================================================
--- lib/irb/lc/ja/help-message	(revision 23826)
+++ lib/irb/lc/ja/help-message	(working copy)
@@ -18,6 +18,9 @@
   -E enc            ruby -E と同じ.
   --inspect	    結果出力にinspectを用いる(bcモード以外はデフォルト).
   --noinspect	    結果出力にinspectを用いない.
+  --inspect-method method-name
+		    結果出力の際, inspectの代わりにmethod-nameを用いる.
+  --pp		    -rpp --inspect-method=pretty_inspect と同じ.
   --readline	    readlineライブラリを利用する.
   --noreadline	    readlineライブラリを利用しない.
   --prompt prompt-mode/--prompt-mode prompt-mode
Index: lib/irb/lc/help-message
===================================================================
--- lib/irb/lc/help-message	(revision 23826)
+++ lib/irb/lc/help-message	(working copy)
@@ -19,6 +19,9 @@
   -E enc            Same as `ruby -E`
   --inspect	    Use `inspect' for output (default except for bc mode)
   --noinspect	    Don't use inspect for output
+  --inspect-method method-name
+		    Use method-name instead of `inspect' for output
+  --pp		    Identical to -rpp --inspect-method=pretty_inspect
   --readline	    Use Readline extension module
   --noreadline	    Don't use Readline extension module
   --prompt prompt-mode
Index: lib/irb/init.rb
===================================================================
--- lib/irb/init.rb	(revision 23826)
+++ lib/irb/init.rb	(working copy)
@@ -45,6 +45,7 @@
     @CONF[:MATH_MODE] = false
     @CONF[:USE_READLINE] = false unless defined?(ReadlineInputMethod)
     @CONF[:INSPECT_MODE] = nil
+    @CONF[:INSPECT_METHOD] = "inspect"
     @CONF[:USE_TRACER] = false
     @CONF[:USE_LOADER] = false
     @CONF[:IGNORE_SIGINT] = true
@@ -148,6 +149,11 @@
 	@CONF[:INSPECT_MODE] = true
       when "--noinspect"
 	@CONF[:INSPECT_MODE] = false
+      when /^--inspect-method(?:=(.+))?/
+	@CONF[:INSPECT_METHOD] = $1 || ARGV.shift
+      when "--pp"
+	@CONF[:LOAD_MODULES].push "pp"
+	@CONF[:INSPECT_METHOD] = "pretty_inspect"
       when "--readline"
 	@CONF[:USE_READLINE] = true
       when "--noreadline"
Index: lib/irb.rb
===================================================================
--- lib/irb.rb	(revision 23826)
+++ lib/irb.rb	(working copy)
@@ -299,7 +299,8 @@

     def output_value
       if @context.inspect?
-        printf @context.return_format, @context.last_value.inspect
+        str = @context.last_value.send(@context.inspect_method)
+        printf @context.return_format, str
       else
         printf @context.return_format, @context.last_value
       end

-- 
Yusuke ENDOH <[email protected]>

In This Thread