From: Charles Mills Date: 2004-12-21T16:14:17+09:00 Subject: Hash#delete - inconsistent with docs 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