[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]