>>>>> "H" == Hugh Sasse Staff Elec Eng <hgs / dmu.ac.uk> writes:

H> The second parameter is supposed to be optional.  How does ruby determine
H> that the second parameter has been missed out, but not the third (limit)?

 If you have only 2 parameters and the second is a FIXNUM then it's the
limit. 

H> If the limit is negative, the depth is not checked.  Presumably the 
H> limit is not ignored -- the only difference is the generation of an error
H> message.  Is that right?  I mean, a negative limit doesn't mean  "keep
H> going down till you have the whole object", for example?

 ruby decrement the limit parameter and only check if this value is null to
 stop the dump.

 With a negative limit (the default) it dump the whole object.


Guy Decoux

p.s.: it's best to read the source for this sort of information.