Encontre argumentos do método Ruby

Acho que a maioria de nós saberá que você pode definir um método com o operador splat e, em seguida, tratá-lo como uma matriz para o conteúdo de seu coração.

def my_method(*args)
puts args

end

No entanto, o que eu não sabia fazer era obter facilmente o número de argumentos de um método quando você não o definia ou quando não queria usar o operador splat.

class Example
def test(first, second, third='optional')
end
end
puts
Example.method(:test).parameters

Isso vai até mostrar se o parâmetro é necessário ou não. Encontrado no estouro da pilha, é claro.

http://stackoverflow.com/a/9212198