class IRB::Inspector

def self.def_inspector(key, arg=nil, &block)

Inspector.def_inspector([key1,...], inspector)
Inspector.def_inspector(key, inspector)
Inspector.def_inspector([key1,..], init_p=nil){|v| v.inspect}
Inspector.def_inspector(key, init_p=nil){|v| v.inspect}

Example
def self.def_inspector(key, arg=nil, &block)
  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