Olá a todos,

Estou iniciando meu aprendizado em Ruby e engasguei num ponto que
parece muito simples mas que não consigo desenrolar. O problema
envolve o uso do método de kernel require.

Vou ilustrar o problema com uma versão bem simples. Tenho um arquivo
chamado dados.rb com o seguinte conteúdo

a = "a"

O segundo arquivo é script.rb com o seguinte conteúdo

require 'dados.rb'
puts a

Em tese, usando require 'dados.rb' deveria deixar o conteúdo de
dados.rb disponível para uso posterior e o programa script.rb deveria
imprimir na tela o conteúdo da variável a. Não é o que está
acontecendo, entretanto.

No prompt, digito $ ruby script.rb e recebo a seguinte mensagem de erro:
script.rb:2: undefined local variable or method `a' for main:Object (NameError)

Pelo que entendi, é como se o programa script.rb não estivesse lendo o
conteúdo de dados.rb. Acho que não é uma questão de path, pois os dois
arquivos estão no mesmo diretório e o erro persiste mesmo se dou o
path absoluto de dados.rb.

Com o irb ou o fxri, se entro com o comando require 'dados.rb' recebo
um 'true' de volta, o que parece indicar que o arquivo foi carregado.
Mesmo assim, se invoco puts a, tenho o mesmo erro:
NameError: undefined local variable or method `a' for main:Object.

Alguém tem alguma idéia do que pode ser? Tentei esse procedimento com
o Ruby 1.8.5 no Ubuntu 7.04 e no XP e tenho sempre o mesmo resultado.
Alguém poderia me dar uma dica sobre o que posso estar fazendo de
errado?

Obrigado de antemão,

Pablo
_______________________________________________
Ruby-l mailing list
[email protected]
http://www.listas.unicamp.br/mailman/listinfo/ruby-l

Responder a