Я не знаю каких-либо сторонних библиотек или даже RubyGems, которые могут сделать это надежно. Это просто невозможно сделать, учитывая ограниченные возможности отражения, которые предоставляет Ruby.
Вам придется обойтись тем, что доступно в базовой библиотеке, которая в основном Method#parameters
:
def foo(a, b=nil, *c, d, &e); end
method(:foo).parameters
# => [[:req, :a], [:opt, :b], [:rest, :c], [:req, :d], [:block, :e]]