ruby-changes:12291
From: keiju <ko1@a...>
Date: Tue, 7 Jul 2009 20:36:47 +0900 (JST)
Subject: [ruby-changes:12291] Ruby:r23985 (trunk): * bin/irb, lib/irb.rb lib/irb/*: irb-0.9.6, extend inspect-mode
keiju 2009-07-07 20:36:20 +0900 (Tue, 07 Jul 2009) New Revision: 23985 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23985 Log: * bin/irb, lib/irb.rb lib/irb/*: irb-0.9.6, extend inspect-mode Modified files: trunk/ChangeLog trunk/bin/irb trunk/lib/irb/cmd/chws.rb trunk/lib/irb/cmd/fork.rb trunk/lib/irb/cmd/help.rb trunk/lib/irb/cmd/load.rb trunk/lib/irb/cmd/nop.rb trunk/lib/irb/cmd/pushws.rb trunk/lib/irb/cmd/subirb.rb trunk/lib/irb/context.rb trunk/lib/irb/ext/change-ws.rb trunk/lib/irb/ext/history.rb trunk/lib/irb/ext/loader.rb trunk/lib/irb/ext/math-mode.rb trunk/lib/irb/ext/multi-irb.rb trunk/lib/irb/ext/save-history.rb trunk/lib/irb/ext/tracer.rb trunk/lib/irb/ext/use-loader.rb trunk/lib/irb/ext/workspaces.rb trunk/lib/irb/extend-command.rb trunk/lib/irb/help.rb trunk/lib/irb/init.rb trunk/lib/irb/input-method.rb trunk/lib/irb/lc/error.rb trunk/lib/irb/lc/help-message trunk/lib/irb/lc/ja/error.rb trunk/lib/irb/lc/ja/help-message trunk/lib/irb/locale.rb trunk/lib/irb/notifier.rb trunk/lib/irb/output-method.rb trunk/lib/irb/ruby-lex.rb trunk/lib/irb/ruby-token.rb trunk/lib/irb/slex.rb trunk/lib/irb/version.rb trunk/lib/irb/workspace.rb trunk/lib/irb/ws-for-case-2.rb trunk/lib/irb.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 23984) +++ ChangeLog (revision 23985) @@ -1,3 +1,7 @@ +Tue Jul 7 20:23:27 2009 Keiju Ishitsuka <keiju@r...> + + * bin/irb, lib/irb.rb lib/irb/*: irb-0.9.6, extend inspect-mode + Tue Jul 7 17:00:38 2009 Nobuyoshi Nakada <nobu@r...> * gc.c (rb_gc_call_finalizer_at_exit): deal with typed struct like Index: lib/irb/input-method.rb =================================================================== --- lib/irb/input-method.rb (revision 23984) +++ lib/irb/input-method.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/input-method.rb - input methods used irb -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/output-method.rb =================================================================== --- lib/irb/output-method.rb (revision 23984) +++ lib/irb/output-method.rb (revision 23985) @@ -1,6 +1,6 @@ # # output-method.rb - optput methods used by irb -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/notifier.rb =================================================================== --- lib/irb/notifier.rb (revision 23984) +++ lib/irb/notifier.rb (revision 23985) @@ -1,6 +1,6 @@ # # notifier.rb - output methods used by irb -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/context.rb =================================================================== --- lib/irb/context.rb (revision 23984) +++ lib/irb/context.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/context.rb - irb context -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # @@ -9,6 +9,7 @@ # # require "irb/workspace" +require "irb/inspector" module IRB class Context @@ -34,8 +35,8 @@ @load_modules = IRB.conf[:LOAD_MODULES] @use_readline = IRB.conf[:USE_READLINE] - @inspect_mode = IRB.conf[:INSPECT_MODE] + self.inspect_mode = IRB.conf[:INSPECT_MODE] self.math_mode = IRB.conf[:MATH_MODE] if IRB.conf[:MATH_MODE] self.use_tracer = IRB.conf[:USE_TRACER] if IRB.conf[:USE_TRACER] self.use_loader = IRB.conf[:USE_LOADER] if IRB.conf[:USE_LOADER] @@ -189,15 +190,49 @@ end def inspect_mode=(opt) - if opt + + if i = INSPECTORS[opt] @inspect_mode = opt + @inspect_method = i + i.init else - @inspect_mode = !@inspect_mode + case opt + when nil + if INSPECTORS.keys_with_inspector(INSPECTORS[true]).include?(@inspect_mode) + self.inspect_mode = false + elsif INSPECTORS.keys_with_inspector(INSPECTORS[false]).include?(@inspect_mode) + self.inspect_mode = true + else + puts "Can't switch inspect mode." + return + end + when /^\s*\{.*\}\s*$/ + begin + inspector = eval "proc#{opt}" + rescue Exception + puts "Can't switch inspect mode(#{opt})." + return + end + self.inspect_mode = inspector + when Proc + self.inspect_mode = IRB::Inspector(opt) + when Inspector + prefix = "usr%d" + i = 1 + while INSPECTORS[format(prefix, i)]; i += 1; end + @inspect_mode = format(prefix, i) + @inspect_method = opt + INSPECTORS.def_inspector(format(prefix, i), @inspect_method) + else + puts "Can't switch inspect mode(#{opt})." + return + end end print "Switch to#{unless @inspect_mode; ' non';end} inspect mode.\n" if verbose? @inspect_mode end + def use_readline=(opt) @use_readline = opt print "use readline module\n" if @use_readline @@ -220,6 +255,10 @@ # @_ = @workspace.evaluate(line, irb_path, line_no) end + def inspect_last_value + @inspect_method.inspect_value(@last_value) + end + alias __exit__ exit def exit(ret = 0) IRB.irb_exit(@irb, ret) Index: lib/irb/ws-for-case-2.rb =================================================================== --- lib/irb/ws-for-case-2.rb (revision 23984) +++ lib/irb/ws-for-case-2.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/ws-for-case-2.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/version.rb =================================================================== --- lib/irb/version.rb (revision 23984) +++ lib/irb/version.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/version.rb - irb version definition file -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@i...) # @@ -10,6 +10,6 @@ # module IRB - @RELEASE_VERSION = "0.9.5" - @LAST_UPDATE_DATE = "05/04/13" + @RELEASE_VERSION = "0.9.6" + @LAST_UPDATE_DATE = "09/06/30" end Index: lib/irb/help.rb =================================================================== --- lib/irb/help.rb (revision 23984) +++ lib/irb/help.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/help.rb - print usage module -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@i...) # Index: lib/irb/lc/help-message =================================================================== --- lib/irb/lc/help-message (revision 23984) +++ lib/irb/lc/help-message (revision 23985) @@ -1,7 +1,7 @@ # -*- coding: US-ASCII -*- # # irb/lc/help-message.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/lc/ja/help-message =================================================================== --- lib/irb/lc/ja/help-message (revision 23984) +++ lib/irb/lc/ja/help-message (revision 23985) @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # irb/lc/ja/help-message.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/lc/ja/error.rb =================================================================== --- lib/irb/lc/ja/error.rb (revision 23984) +++ lib/irb/lc/ja/error.rb (revision 23985) @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # irb/lc/ja/error.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/lc/error.rb =================================================================== --- lib/irb/lc/error.rb (revision 23984) +++ lib/irb/lc/error.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/lc/error.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/workspace.rb =================================================================== --- lib/irb/workspace.rb (revision 23984) +++ lib/irb/workspace.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/workspace-binding.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/save-history.rb =================================================================== --- lib/irb/ext/save-history.rb (revision 23984) +++ lib/irb/ext/save-history.rb (revision 23985) @@ -1,5 +1,5 @@ # save-history.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/tracer.rb =================================================================== --- lib/irb/ext/tracer.rb (revision 23984) +++ lib/irb/ext/tracer.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/lib/tracer.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/use-loader.rb =================================================================== --- lib/irb/ext/use-loader.rb (revision 23984) +++ lib/irb/ext/use-loader.rb (revision 23985) @@ -1,6 +1,6 @@ # # use-loader.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/history.rb =================================================================== --- lib/irb/ext/history.rb (revision 23984) +++ lib/irb/ext/history.rb (revision 23985) @@ -1,6 +1,6 @@ # # history.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/workspaces.rb =================================================================== --- lib/irb/ext/workspaces.rb (revision 23984) +++ lib/irb/ext/workspaces.rb (revision 23985) @@ -1,6 +1,6 @@ # # push-ws.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/multi-irb.rb =================================================================== --- lib/irb/ext/multi-irb.rb (revision 23984) +++ lib/irb/ext/multi-irb.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/multi-irb.rb - multiple irb module -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/loader.rb =================================================================== --- lib/irb/ext/loader.rb (revision 23984) +++ lib/irb/ext/loader.rb (revision 23985) @@ -1,6 +1,6 @@ # # loader.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/math-mode.rb =================================================================== --- lib/irb/ext/math-mode.rb (revision 23984) +++ lib/irb/ext/math-mode.rb (revision 23985) @@ -1,6 +1,6 @@ # # math-mode.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ext/change-ws.rb =================================================================== --- lib/irb/ext/change-ws.rb (revision 23984) +++ lib/irb/ext/change-ws.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/ext/cb.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/locale.rb =================================================================== --- lib/irb/locale.rb (revision 23984) +++ lib/irb/locale.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/locale.rb - internationalization module -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # @@ -141,7 +141,7 @@ dir = File.dirname(file) dir = "" if dir == "." base = File.basename(file) - if dir[0] == ?/ #/ + if dir =~ /^\// return lc_path = search_file(dir, base) else for path in $: Index: lib/irb/ruby-token.rb =================================================================== --- lib/irb/ruby-token.rb (revision 23984) +++ lib/irb/ruby-token.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/ruby-token.rb - ruby tokens -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/load.rb =================================================================== --- lib/irb/cmd/load.rb (revision 23984) +++ lib/irb/cmd/load.rb (revision 23985) @@ -1,6 +1,6 @@ # # load.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/fork.rb =================================================================== --- lib/irb/cmd/fork.rb (revision 23984) +++ lib/irb/cmd/fork.rb (revision 23985) @@ -1,6 +1,6 @@ # # fork.rb - -# $Release Version: 0.9.5 $ +# $Release Version: 0.9.6 $ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/chws.rb =================================================================== --- lib/irb/cmd/chws.rb (revision 23984) +++ lib/irb/cmd/chws.rb (revision 23985) @@ -1,6 +1,6 @@ # # change-ws.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/subirb.rb =================================================================== --- lib/irb/cmd/subirb.rb (revision 23984) +++ lib/irb/cmd/subirb.rb (revision 23985) @@ -1,5 +1,5 @@ # multi.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/help.rb =================================================================== --- lib/irb/cmd/help.rb (revision 23984) +++ lib/irb/cmd/help.rb (revision 23985) @@ -1,6 +1,6 @@ # # help.rb - helper using ri -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # # -- Index: lib/irb/cmd/pushws.rb =================================================================== --- lib/irb/cmd/pushws.rb (revision 23984) +++ lib/irb/cmd/pushws.rb (revision 23985) @@ -1,6 +1,6 @@ # # change-ws.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/cmd/nop.rb =================================================================== --- lib/irb/cmd/nop.rb (revision 23984) +++ lib/irb/cmd/nop.rb (revision 23985) @@ -1,6 +1,6 @@ # # nop.rb - -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/init.rb =================================================================== --- lib/irb/init.rb (revision 23984) +++ lib/irb/init.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/init.rb - irb initialize module -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # @@ -44,7 +44,7 @@ @CONF[:MATH_MODE] = false @CONF[:USE_READLINE] = false unless defined?(ReadlineInputMethod) - @CONF[:INSPECT_MODE] = nil + @CONF[:INSPECT_MODE] = true @CONF[:USE_TRACER] = false @CONF[:USE_LOADER] = false @CONF[:IGNORE_SIGINT] = true @@ -145,7 +145,11 @@ opt = $1 || ARGV.shift set_encoding(*opt.split(':', 2)) when "--inspect" - @CONF[:INSPECT_MODE] = true + if /^-/ !~ ARGV.first + @CONF[:INSPECT_MODE] = ARGV.shift + else + @CONF[:INSPECT_MODE] = true + end when "--noinspect" @CONF[:INSPECT_MODE] = false when "--readline" Index: lib/irb/extend-command.rb =================================================================== --- lib/irb/extend-command.rb (revision 23984) +++ lib/irb/extend-command.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/extend-command.rb - irb extend command -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/ruby-lex.rb =================================================================== --- lib/irb/ruby-lex.rb (revision 23984) +++ lib/irb/ruby-lex.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/ruby-lex.rb - ruby lexcal analyzer -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb/slex.rb =================================================================== --- lib/irb/slex.rb (revision 23984) +++ lib/irb/slex.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb/slex.rb - simple lex analyzer -# $Release Version: 0.9.5$ +# $Release Version: 0.9.6$ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # Index: lib/irb.rb =================================================================== --- lib/irb.rb (revision 23984) +++ lib/irb.rb (revision 23985) @@ -1,6 +1,6 @@ # # irb.rb - irb main module -# $Release Version: 0.9.5 $ +# $Release Version: 0.9.6 $ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # @@ -298,11 +298,7 @@ end def output_value - if @context.inspect? - printf @context.return_format, @context.last_value.inspect - else - printf @context.return_format, @context.last_value - end + printf @context.return_format, @context.inspect_last_value end def inspect Index: bin/irb =================================================================== --- bin/irb (revision 23984) +++ bin/irb (revision 23985) @@ -1,7 +1,7 @@ #!/usr/bin/env ruby # # irb.rb - interactive ruby -# $Release Version: 0.9.5 $ +# $Release Version: 0.9.6 $ # $Revision$ # by Keiju ISHITSUKA(keiju@r...) # -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/