Dúvida sobre carregamento de bibliotecas no irb [RESOLVIDO]

1. Dúvida sobre carregamento de bibliotecas no irb [RESOLVIDO]

Cranio Killer
Cranio

(usa Ubuntu)

Enviado em 17/01/2017 - 09:47h

Olá pessoal do VOL.

Estou iniciando meu aprendizado de Ruby.
Bom, inicio o irb no terminal e faço o require dos arquivos com minhas classes.
Até ai tudo bem, instancio alguns objetos e faço algumas interações com eles.
O problema está quando preciso fazer alteração nas classes, estas não são caregadas no irb ao salvar os arquivos.
Então fecho o irb e volto a abri-lo no terminal, porém preciso instanciar todos os objetos novamente.
Quero saber se tem como, ao salvar o arquivo .rb, já ser atualizado no irb, ou alguma forma de não precisar fechar e perder o que fiz.


  


2. Re: Dúvida sobre carregamento de bibliotecas no irb [RESOLVIDO]

Daniel Vinciguerra
dvinciguerra

(usa Debian)

Enviado em 17/01/2017 - 10:31h

Olá,

Não entendi muito bem qual a sua necessidade mas... por que você não escreve seu arquivo em um .rb e roda depois!?

Fazendo isso você tem a garantia de que tudo vai estar salvo, pode versionar com um vcs (como o git, por exemplo), dentre
outras vantagens.

Grande abraço




3. Re: Dúvida sobre carregamento de bibliotecas no irb [RESOLVIDO]

Cranio Killer
Cranio

(usa Ubuntu)

Enviado em 17/01/2017 - 11:40h

Opa, vlw...

Parte do problema, de ter que ficar re-instanciando os objetos toda hora, foi resolvido da seguinte forma, como sugeriu o @dvinciguerra:
Salvei um arquivo .rb com eles e simplesmente dou um load no irb.

E fazendo testes consegui sanar a dúvida.

Quando utilizo o comando 'require' para chamar minhas bibliotecas com meus objetos e edito os arquivos depois disso, as alterações não são consideradas, pois já estão carregadas. E mesmo realizando outro 'require' nada acontece pois o arquivo se encontra em $LOADED_FEATURES, então o método simplesmente retornará false e não carregará o arquivo novamente.
Mas se utilizar 'load' ele sempre carrega o arquivo novamente, então caso eu precise alterar alguma Class basta fazer um 'load' do arquivo novamente. :)

Esta explicação me ajudou a entender a diferença do 'load' e 'require': http://nomedojogo.com/2010/01/07/entendendo-os-metodos-load-e-require-por-dentro/

Abraço.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts