S. Robert James
3/22/2007 10:19:00 PM
Right - I should clarify - my goal is to allow easy migration of all
of the current libs that use option hashes.
With the syntax I'm suggesting, library owners could change their
method definitions, and not break older code.
On Mar 22, 5:58 pm, "Patrick Hurley" <phur...@gmail.com> wrote:
> Named parameters is in the ToDo file on 1.9 distribution:
>
> * named arguments like foo(nation:="german") or foo(nation: "german").
>
> so you may get what you want
> pth
> On 3/22/07, S. Robert James <srobertja...@gmail.com> wrote:
>
>
>
> > Code completion for Ruby is on its way. I'm concerned that the
> > recently popular style of using hashes to fake named params will keep
> > us in the dark, though.
>
> > And anyway, Ruby wants to get named params. How about this: declare
> > the method explicitly:
>
> > def parse(filename, char = nil, conn = nil, another_param = nil)
>
> > and have the interpreter allow the style, by converting a final hash
> > to params if and only if all of the keys match the arg names.
>
> > So:
>
> > parse('readme.txt', :char => 'a', :another_param => true)
> > becomes
> > parse('readme.txt', a, nil, true)
>
> > whereas
> > parse('readme.txt', :bad_param => 'b')
> > would still be
> > parse('readme.txt', {:bad_param => 'b'})
> > and it would be up to the parse method to handle as it normally does.
>
> > This would allow:
> > * real named params
> > * more explicit method definitions
> > * code completion
> > * preserve the current style
>