----- Original Message -----
From: "David A. Black" <dblack / wobblini.net>
To: <ruby-core / ruby-lang.org>
Sent: Tuesday, December 21, 2004 1:34 PM
Subject: Re: Hash#delete - inconsistent with docs


> Hi --
>
> On Tue, 21 Dec 2004, Charles Mills wrote:
>
> > irb(main):001:0> h = Hash.new("go fish")
> > => {}
> > irb(main):002:0> h.delete("foo")
> > => nil
> >
> > $ ri Hash#delete
> > ------------------------------------------------------------ Hash#delete
> >     hsh.delete(key)                   => value
> >     hsh.delete(key) {| key | block }  => value
> > ------------------------------------------------------------------------
> >     Deletes and returns a key-value pair from hsh whose key is equal
> >     to key. If the key is not found, returns the default value. If the
> >     optional code block is given and the key is not found, pass in the
> >     key and return the result of block.
> >
> >        h = { "a" => 100, "b" => 200 }
> >        h.delete("a")                              #=> 100
> >        h.delete("z")                              #=> nil
> >        h.delete("z") { |el| "#{el} not found" }   #=> "z not found"
> >
> >
> > I expected
> >> h.delete("foo") #=> "go fish"
> > or for the docs to say 'If the key is not found, returns nil'.
>
> That behavior seems to have changed since 1.6.8:
>
>    ruby -ve 'h=Hash.new("x"); h[1]=2; p h.delete("y"); p h.delete(1)'
>    ruby 1.6.8 (2002-12-24) [i686-linux]
>    "x"
>    2
>
> though I can't find it mentioned in the ChangeLog.  (Maybe that's why
> the doc wasn't updated.)
>
>
> David
>

AFAICS, this was changed 3 years ago in rev1.58 ...
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/hash.c#rev1.58

DIFF (around lines 395/414)
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/hash.c.diff?r1=1.57;r2=1.58;f=h

I posted on c.l.ruby in Feb 2003 but the message didn't go to ruby-talk ...
http://groups-beta.google.com/group/comp.lang.ruby/browse_thread/thread/6a80fe2c76647f34

I added a short prompt on the Wiki for PragDave, here ...
http://www.rubygarden.org/ruby?ProgrammingRubyTwo/Hash


daz




____________________________________________________________________________
This email and all attachments have been electronically scanned by Kingston
Communications' email Anti-Virus service and no known viruses were detected.
____________________________________________________________________________