Lendo Dados do Teclado no Ruby
Ruby 1/11/07 às 8:11Já vimos de forma resumida como funcionam as variáveis no Ruby e também como gerar saída de dados com puts, print e printf, no entanto, até o momento, isto não nos serve muito, já que todo dado que quisermos armazenar e/ou exibir teriam que ser inseridos por nós diretamente no código. Sendo assim, para tornar as coisas um pouco mais interessantes, veremos agora como ler dados do teclado através da janela de comando no Ruby.
Usando o método gets
O gets é um método que lê e retorna a próxima linha do fluxo de entrada padrão, que, por padrão, refere-se à janela de comando. Sendo assim, ele nos permite, entre outras coisas, ler um dado digitado pelo usuário através da janela de comando. Veja abaixo um exemplo:
print "Digite o seu nome: "
nome = gets
puts "Seu nome: " + nome
Algo interessante a ser dito sobre o gets é que mesmo que você não armazene o seu retorno em uma variável, o Ruby automaticamente irá inserir este valor na váriavel global $_. Além disto, se chamarmos o método print sem especificar nenhum argumento, ele automaticamente irá exibir o valor de $_. Veja a seguir este recurso em funcionamento:
gets
print # É o mesmo que print $_
teste = gets
print # É o mesmo que print $_
Como vimos, o gets armezena em $_ o valor que ele retorna, tanto no primeiro caso, onde não armazenamos explicitamente este valor em uma variável, como no segundo, onde o armazenamos na variável teste. No entanto, é importante mencionar que o uso do $_ está gradualmente sendo abandonado pela comunidade Ruby.
Lendo mais de uma linha com readlines
Existe também o método readlines, que nos permite ler várias linhas na janela de comando de uma só vez. Para isto, basta digitar cada linha, e separá-las pressionando a tecla Enter, o que irá inserir um caractere de nova linha(\n) entre cada linha digitada. Para encerrar a entrada dos dados, basta inserir o caractere de fim de arquivo representado por Ctrl + C, na última linha, sendo que nesta linha não pode estar presente nenhum outro caractere. Além disso, é importante saber também que o readlines retorna as linhas digitadas na forma de um array, sendo cada linha um elemento deste array.
puts "Faca um resumo da sua vida: "
resumo = readlines
puts "\nResumo: \n\n"
puts resumo

[...] Pesquisei no Google: Ler caractere teclado Ruby Achei: http://www.elomarns.com/blog/ruby/lendo-dados-do-teclado-no-ruby [...]