From: Daniel Berger Date: 2007-08-10T02:55:23+09:00 Subject: Re: Bug or bad documentation for Array.insert() On Aug 9, 10:35 am, Markus Echterhoff wrote: > I just came across ruby and noticed a difference between the behavior of > Array.insert() and its documentation. > > Method:http://www.ruby-doc.org/core/classes/Array.src/M002195.html > > From the RDoc it seems that two arguments are mandatory, yet Array.insert() > only raises an error if there is no argument passed at all. > > Code snippet from Array.insert(): > > if (argc == 1) return ary; > if (argc < 1) { > rb_raise(rb_eArgError, "wrong number of arguments (at least 1)"); > } > > From my semantic understanding of an "insert" Method it should raise an error > if called with less than two arguments, for silently returning the array can > be irritating for beginners (Took me some time to figure it out). Nope, the docs show that the second argument is optional. As it stands now there are a few methods like this scattered throughout Ruby where you can end up with what amounts to a no-op in certain situations, e.g. File.join with no arguments. Not that I necessarily agree with the current semantics, but it is documented properly. It does require that you understand "obj..." to mean "0 or more". Regards, Dan