From: Andrea Fazzi Date: 2008-05-09T18:09:29+09:00 Subject: Re: How to re-replace Hash default value behaviour? Siep Korteling wrote: > Hash.new(0) and the block form of Hash.new{_smart_stuff_} come in > really handy while reading in a hash. > When the reading is done however, my hash serves to provide data. At > that stage, the default_value behaviour gets in the way. For instance, > if the hash contains the number of goals for soccerplayers, I don't want > the hash to return value "0" for the key "Wolfgang Amadeus Mozart"; by > then I want plain old Nil, or "No data available". > > failed experiment: > > Class Hash > def default_proc > Nil > end > end > > How can Hash.new behaviour be changed? > > regards, > Siep a = Hash.new(0) # do something with a a = Hash.new { |h,k| h[k] = "No data available" }.merge(a) But I don't know if this is what you want. Bye. Andrea -- Posted via http://www.ruby-forum.com/.