Eu entendi que quando usamos o gets pra armazenar uma variável, ela é do tipo fica do tipo string. Por exemplo:
a  = gets
a.classNa saída terei String
É possível diferenciar se essa string é um número ou não? Se sim, como?
Eu quero fazer uma função que pede um número pro usuário, mas que, toda vez que o usuário não digitar um número, informe-o que ele não digitou um número e peça para que ele tente novamente.
Consegui resolver parcialmente o problema quando o número é diferente de zero já que quando uso o comando .to_i ele converte uma string diferente de números pra zero. Assim, o código ficou:
loop do
        puts "Entre com o número:"
        numero = gets.to_i
        if numero != 0
            return numero
        else
            puts "\n"
            puts "Você não digitou um número, tente novamente!"
            puts "\n"
        end
    endMas isso não resolve o problema pra quando o número digitado é zero.