From: rubikitch Date: 2001-12-08T15:49:10+09:00 Subject: [ruby-list:32832] irb & pp るびきちです。 inspectの強力版である[RAA:pp]とirbを組み合わせするために、 irb.rb内のIRB::Irb#eval_inputを分離しました。 そして、.irbrc内で require 'pp' module IRB class Irb Width = 79 def output_value( fmt, value ) if @context.inspect? printf @context.return_format, PP.pp( @context.last_value, Width, '' ) else printf @context.return_format, @context.last_value end end end end と書けばpretty_printしてくれます。 pp.rbはirbでこそ生きるのでは。 # 拙作のデバッグ用ppは安直にpppとでも改名するか。 --- /usr/local/lib/ruby/1.6/irb.rb Fri Dec 7 21:06:47 2001 +++ irb.rb Sat Dec 8 15:40:52 2001 @@ -101,6 +101,14 @@ attr_reader :context attr_accessor :scanner + def output_value( fmt, value ) + if @context.inspect? + printf @context.return_format, @context.last_value.inspect + else + printf @context.return_format, @context.last_value + end + end + def eval_input @scanner.set_input(@context.io) do signal_status(:IN_INPUT) do @@ -149,11 +157,7 @@ # @context._ = irb_eval(line, @context.bind, @context.irb_path, line_no) end - if @context.inspect? - printf @context.return_format, @context.last_value.inspect - else - printf @context.return_format, @context.last_value - end + output_value( @context.return_format, @context.last_value ) rescue StandardError, ScriptError, Abort $! = RuntimeError.new("unknown exception raised") unless $! print $!.type, ": ", $!, "\n" るびきち☆ http://voo.to/ruby/ ←Ruby大衆化計画(笑)