From: "Mikael Høilund" Date: 2008-11-11T20:01:56+09:00 Subject: [ruby-core:19818] Re: Proposal: Method#get_args Allow me to throw in my ~.116892074 DKK; I'm in favor of using a class for representing the parameter data. It'll allow for methods like allows?(some, arguments), which will tell you if calling the method with those arguments will throw an ArgumentError or not. This might, however, be better suited to be in the Method/UnboundMethod class. It will also make handling of the returned object much prettier. I'd much rather see method(:foo).parameters.names.include? :some_param than method(:foo).parameters.any? { |param| param.include? :some_param if param.kind_of? Array } or however it would be represented. Similarly, what expresses what you want the most; `parameters.takes_block?` or `!parameters.last.nil?`? I'm also in favor of supplying the default value. In far the most cases the default value is nil (in my experience), but not always. This means I'll have to look up the method (don't get me started on if the method is dynamically generated) just to pass an optional argument that follows another optional argument I don't want to change. Default values, however, I can see becoming a bit of a hassle. Unless it's to be represented as a string of Ruby code, cases like `def foo bar, baz = "default-#{bar}"` will be quite difficult to express, let alone in a way that's easy and nice to handle. Ultimately, I'd like to propose that the parameters method also be added to the Proc class. -- # Mikael H�ilund def method_missing(m, a=0) a + m.to_s[/[a-z]+/].size * 2; end p What is the meaning of life?