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'.
Also, reading over that again is seems the first line should different,
maybe
"Deletes and returns the value from _hsh_ whose key is equal to _key_."
I guess that is not quite right either, it doesn't mention that the key
is deleted... but a key-value pair is not returned either :-/
-Charlie