On Tue, 25 Apr 2006 dblack / wobblini.net wrote: > Hi -- > > On Tue, 25 Apr 2006, ara.t.howard / noaa.gov wrote: > >> >> at this point calls of the form >> >> some_method arg, "key" => "value" >> >> or >> >> some_method arg, :key=>:value >> >> are idiomatic ruby. let's just support it directly and be done with it: > > Can you editorialize a little more? :-) I'm not clear on the > connection between the above and the below. Are you mainly interested > in having hashes that don't differentiate between string and symbol > keys? yes, but __only__ for the getopt method. mainly i'm campaigning for a Hash#getopt method to support people writing friendly apis that can be used like this spawn cmd, :stdin => buf or spawn cmd, 'stdin' => buf given a def like def spawn cmd, opts = {} stdin = opts.getopt :stdin ... end i think that when getting and option from a hash, and only when getting an option from a hash, we should be able to use strings or symbols and provide a default value. note that we cannot use short-circuit operator for default here since def some_method arg, opts = {} quiet = opts.getopt(:quiet) || true end would fail with some_method 42, :quiet => false and hence Hash#getopt also requires the optional 'default' param so useage may, instead, be def some_method arg, opts = {} quiet = opts.getopt(:quiet, true) end followed by some_method 42, :quiet => false and this then behaves correctly. make more sense? regards. -a -- be kind whenever possible... it is always possible. - h.h. the 14th dali lama