class Test def initialize(param1, *param2, param3, param4: '', param5: nil) end end params = Test.instance_method(:initialize).parameters puts params.inspect # => [[:req, :param1], # [:rest, :param2], # [:req, :param3], # [:key, :param4], # [:key, :param5]]