>>>>> "R" == Raja S <raja / cs.indiana.edu> writes:

R>   keys,values = h.keys, h.values    # disassemble
R>   new_vals = norm_v (values)        # normalize
R>   Hash.make (keys, new_vals)        # reassemble

     h1 = {}
     h.each { |k, v| h1[k] = norm_v(v) }

   no ?

>> p.s. is there a way to override a class method like Hash.new -without-
>> sub-classing?  It appears that class methods can't be aliased hence
>> redefinition of something like Hash.new doesn't seem possible? 


   class Hash
      class << self
         alias :old_new :new
         def new(ifnone)
            h = old_new(ifnone)
            # do what you want with h
            h
         end
	 alias :old_bra :[]
	 def [](*args)
            h = old_bra(*args)
            # do what you want with h
            h
         end
       end
   end


  no ? but you must explicit call Hash::new and not use, for example,
  'a = {1 => 2}' 


Guy Decoux