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

ruby-changes:26491

From: zzak <ko1@a...>
Date: Sat, 22 Dec 2012 02:10:08 +0900 (JST)
Subject: [ruby-changes:26491] zzak:r38542 (trunk): * lib/irb/inspector.rb, lib/irb/context.rb: Move IRB::INSPECTORS and

zzak	2012-12-22 02:08:24 +0900 (Sat, 22 Dec 2012)

  New Revision: 38542

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=38542

  Log:
    * lib/irb/inspector.rb, lib/irb/context.rb: Move IRB::INSPECTORS and 
      class methods to IRB::Inspector [ruby-core:51067][Bug #7598]

  Modified files:
    trunk/ChangeLog
    trunk/lib/irb/context.rb
    trunk/lib/irb/inspector.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 38541)
+++ ChangeLog	(revision 38542)
@@ -1,3 +1,8 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Sat Dec 22 02:05:00 2012  Zachary Scott  <zachary@z...>
+
+	* lib/irb/inspector.rb, lib/irb/context.rb: Move IRB::INSPECTORS and
+	  class methods to IRB::Inspector [ruby-core:51067][Bug #7598]
+
 Sat Dec 22 00:28:46 2012  NAKAMURA Usaku  <usa@r...>
 
 	* object.c (rb_obj_hash): shouldn't assume object_id can be long.
Index: lib/irb/context.rb
===================================================================
--- lib/irb/context.rb	(revision 38541)
+++ lib/irb/context.rb	(revision 38542)
@@ -286,7 +286,7 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L286
     # +nil+::   inspect mode in non-math mode,
     #           non-inspect mode in math mode
     #
-    # See IRB::INSPECTORS for more information.
+    # See IRB::Inspector for more information.
     #
     # Can also be set using the +--inspect+ and +--noinspect+ command line
     # options.
@@ -294,16 +294,16 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L294
     # See IRB@Command+line+options for more command line options.
     def inspect_mode=(opt)
 
-      if i = INSPECTORS[opt]
+      if i = Inspector::INSPECTORS[opt]
 	@inspect_mode = opt
 	@inspect_method = i
 	i.init
       else
 	case opt
 	when nil
-	  if INSPECTORS.keys_with_inspector(INSPECTORS[true]).include?(@inspect_mode)
+	  if Inspector.keys_with_inspector(Inspector::INSPECTORS[true]).include?(@inspect_mode)
 	    self.inspect_mode = false
-	  elsif INSPECTORS.keys_with_inspector(INSPECTORS[false]).include?(@inspect_mode)
+	  elsif Inspector.keys_with_inspector(Inspector::INSPECTORS[false]).include?(@inspect_mode)
 	    self.inspect_mode = true
 	  else
 	    puts "Can't switch inspect mode."
@@ -322,10 +322,10 @@ module IRB https://github.com/ruby/ruby/blob/trunk/lib/irb/context.rb#L322
 	when Inspector
 	  prefix = "usr%d"
 	  i = 1
-	  while INSPECTORS[format(prefix, i)]; i += 1; end
+	  while Inspector::INSPECTORS[format(prefix, i)]; i += 1; end
 	  @inspect_mode = format(prefix, i)
 	  @inspect_method = opt
-	  INSPECTORS.def_inspector(format(prefix, i), @inspect_method)
+	  Inspector.def_inspector(format(prefix, i), @inspect_method)
 	else
 	  puts "Can't switch inspect mode(#{opt})."
 	  return
Index: lib/irb/inspector.rb
===================================================================
--- lib/irb/inspector.rb	(revision 38541)
+++ lib/irb/inspector.rb	(revision 38542)
@@ -41,6 +41,62 @@ module IRB # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/irb/inspector.rb#L41
   #     irb(main):001:0> "what?" #=> omg! what?
   #
   class Inspector
+    # Default inspectors available to irb, this includes:
+    #
+    # +:pp+::       Using Kernel#pretty_inspect
+    # +:yaml+::     Using YAML.dump
+    # +:marshal+::  Using Marshal.dump
+    INSPECTORS = {}
+
+    # Determines the inspector to use where +inspector+ is one of the keys passed
+    # during inspector definition.
+    def self.keys_with_inspector(inspector)
+      select{|k,v| v == inspector}.collect{|k, v| k}
+    end
+
+    # Example
+    #
+    #     Inspector.def_inspector(key, init_p=nil){|v| v.inspect}
+    #     Inspector.def_inspector([key1,..], init_p=nil){|v| v.inspect}
+    #     Inspector.def_inspector(key, inspector)
+    #     Inspector.def_inspector([key1,...], inspector)
+    def self.def_inspector(key, arg=nil, &block)
+  #     if !block_given?
+  #       case arg
+  #       when nil, Proc
+  # 	inspector = IRB::Inspector(init_p)
+  #       when Inspector
+  # 	inspector = init_p
+  #       else
+  # 	IRB.Raise IllegalParameter, init_p
+  #       end
+  #       init_p = nil
+  #     else
+  #       inspector = IRB::Inspector(block, init_p)
+  #     end
+
+      if block_given?
+        inspector = IRB::Inspector(block, arg)
+      else
+        inspector = arg
+      end
+
+      case key
+      when Array
+        for k in key
+          def_inspector(k, inspector)
+        end
+      when Symbol
+        INSPECTORS[key] = inspector
+        INSPECTORS[key.to_s] = inspector
+      when String
+        INSPECTORS[key] = inspector
+        INSPECTORS[key.intern] = inspector
+      else
+        INSPECTORS[key] = inspector
+      end
+    end
+
     # Creates a new inspector object, using the given +inspect_proc+ when
     # output return values in irb.
     def initialize(inspect_proc, init_proc = nil)
@@ -60,72 +116,16 @@ module IRB # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/irb/inspector.rb#L116
     end
   end
 
-  # Default inspectors available to irb, this includes:
-  #
-  # +:pp+::       Using Kernel#pretty_inspect
-  # +:yaml+::     Using YAML.dump
-  # +:marshal+::  Using Marshal.dump
-  INSPECTORS = {}
-
-  # Determines the inspector to use where +inspector+ is one of the keys passed
-  # during inspector definition.
-  def INSPECTORS.keys_with_inspector(inspector)
-    select{|k,v| v == inspector}.collect{|k, v| k}
-  end
-
-  # Example
-  #
-  #     INSPECTORS.def_inspector(key, init_p=nil){|v| v.inspect}
-  #     INSPECTORS.def_inspector([key1,..], init_p=nil){|v| v.inspect}
-  #     INSPECTORS.def_inspector(key, inspector)
-  #     INSPECTORS.def_inspector([key1,...], inspector)
-  def INSPECTORS.def_inspector(key, arg=nil, &block)
-#     if !block_given?
-#       case arg
-#       when nil, Proc
-# 	inspector = IRB::Inspector(init_p)
-#       when Inspector
-# 	inspector = init_p
-#       else
-# 	IRB.Raise IllegalParameter, init_p
-#       end
-#       init_p = nil
-#     else
-#       inspector = IRB::Inspector(block, init_p)
-#     end
-
-    if block_given?
-      inspector = IRB::Inspector(block, arg)
-    else
-      inspector = arg
-    end
-
-    case key
-    when Array
-      for k in key
-	def_inspector(k, inspector)
-      end
-    when Symbol
-      self[key] = inspector
-      self[key.to_s] = inspector
-    when String
-      self[key] = inspector
-      self[key.intern] = inspector
-    else
-      self[key] = inspector
-    end
-  end
-
-  INSPECTORS.def_inspector([false, :to_s, :raw]){|v| v.to_s}
-  INSPECTORS.def_inspector([true, :p, :inspect]){|v|
+  Inspector.def_inspector([false, :to_s, :raw]){|v| v.to_s}
+  Inspector.def_inspector([true, :p, :inspect]){|v|
     begin
       v.inspect
     rescue NoMethodError
       puts "(Object doesn't support #inspect)"
     end
   }
-  INSPECTORS.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v| v.pretty_inspect.chomp}
-  INSPECTORS.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|
+  Inspector.def_inspector([:pp, :pretty_inspect], proc{require "pp"}){|v| v.pretty_inspect.chomp}
+  Inspector.def_inspector([:yaml, :YAML], proc{require "yaml"}){|v|
     begin
       YAML.dump(v)
     rescue
@@ -134,7 +134,7 @@ module IRB # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/irb/inspector.rb#L134
     end
   }
 
-  INSPECTORS.def_inspector([:marshal, :Marshal, :MARSHAL, Marshal]){|v|
+  Inspector.def_inspector([:marshal, :Marshal, :MARSHAL, Marshal]){|v|
     Marshal.dump(v)
   }
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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