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]]