Jason Vogel wrote: > Okay, I have a couple of questions. If I use the Hash approach, > > - How do I handle argument default values? Initially: @hash = { key => arg, key => arg, ... } Then: @hash[key] = arg # from initializer arguments > - How do I handle required vs. optional arguments? Please explain. Ordinarily if a required argument is not provided, the call fails: ... wrong number of arguments (0 for 1) (ArgumentError) > - Provide some sort of clue to the calling routines what the argument > "names" are? Is this still a constructor for a class? Perhaps it would be better, rather than asking a lot of hypothetical questions, for you to say what you are trying to accomplish with your code. > - Is there a way to enumerate the valid choices for values (e.g. colors > = [red,white,blue]) Yes, but it is a bit involved. -- Paul Lutus http://www.arachnoid.com