From: Yorick Peterse Date: 2013-07-11T00:16:35+09:00 Subject: [ruby-core:55922] Re: [CommonRuby - Feature #8088] Method#parameters (and friends) should provide useful information about core methods Consider the following code: def example(required, optional = 10) end method(:example).parameters On all Ruby implementations this works as expected and results in the following: [[:req, :required], [:opt, :optional]] The problem, at least with MRI, is that the moment you do something similar with methods that are written in C all meaningful information is lost: String.instance_method(:gsub).parameters # => [[:rest]] This is false since gsub has at least 1 required argument. This happens with a lot of methods (if not all) in MRI that are implemented in C. Jruby is also affected by this (at least with the above example). Rubinius is thus far the only implementation that gets this right that I know of. In hindsight, I probably should've made the above clear from the start. Yorick