Yukihiro Matsumoto wrote: > I think we have to address some issues: > > * the name. In Ruby, unlike Java, we rarely use the verb get for > method names. We prefer foo to get_foo, when foo can be considered > as an attribute. But in this case, args instead of get_args sounds > bit weird to me. Someone else suggested "parameters", which isn't too bad. "arguments" also seems fine to me. > * there is name-less rest argument (a, b, *), which just ignores the > rest arguments. I think we have give some meaningful value for that > case too. :* seems like a good identifier, since it's not valid as a local var name. So we'd have this: def foo(bar, *); end method(:foo).get_args #=> [[[:bar]], :*, nil] > * 1.9 added mandatory argument at the bottom of argument list (after > rest argument *, just before block argument &). We have to address > this in the returning tuple. This is perhaps where a more structured type starts to sound better; we could expand the array-based structure, but then what happens with future changes to supported args layout? - Charlie