Como executar um arquivo .rb do IRB?

88

Estou começando com Ruby on Rails. Atualmente, estou passando por um tutorial onde diz que tenho que executar um arquivo .rb do IRB e que isso criará um arquivo .xml no meu diretório atual.

Minha pergunta é como faço para executar um arquivo .rb no IRB?
E eu tenho que estar no diretório onde este arquivo .rb reside quando eu o executar no IRB?

Tentei o seguinte: basta digitar irbna linha de comando no diretório do arquivo. Isso inicia uma sessão IRB, tanto quanto eu entendo.
Então digitei irb "filename.rb"que passou, mas não criei nada no diretório atual, mas pelo menos não deu nenhum erro.

Eu também tentei um monte de outras coisas que simplesmente me deram erros. Portanto, não acho que posso resolver isso sozinho e pesquisar o assunto no Google não ajudou em nada.

Estou executando o Leopard.

Katrina
fonte

Respostas:

175

Você pode "executar" um arquivo no irb apenas solicitando ou carregando-o.

$ irb
>> load './filename.rb'

Para alterar seu diretório de trabalho atual dentro do irb, você pode usar FileUtils :

>> require 'fileutils'
>> FileUtils.pwd # prints working directory
>> FileUtils.cd '/path/to/somewhere' # changes the directory
J -_- L
fonte
3
para solicitá-lo do irb, você precisa fornecer o caminho totalmente qualificado, assim: em require '~/myrubystuff/coolstuff.rb' vez de apenas require 'coolstuff'
runlevel0
Consegui requerer apenas fileutilspelo nome, nenhum caminho de diretório necessário. Tenho certeza que depende do ambiente e nem todos precisarão usar o caminho qualificado.
volx757
5

Caso você queira que seu arquivo seja carregado na sessão irb e esteja usando Ruby 2+, você pode carregar um arquivo no irb como este:

irb -r ./the_name_of_your_file.rb

Isso abre uma sessão irb com o arquivo fornecido carregado.

Imagine que você tenha um arquivo com uma classe como esta:

class Example
  def initialize(name)
    @name = name
  end

  def print__example
    p name
  end
end

Você poderá usar a classe Exemplo na sessão irb .

Gabriel lidenor
fonte
era isso que eu estava procurando, muito obrigado!
thomas
Isso dá acesso apenas a funções, não variáveis ​​definidas no arquivo.
Radon Rosborough
1

Podemos apenas criar um arquivo .rb no diretório no qual você está trabalhando atualmente usando qualquer editor de texto e digitar todo o código ruby filename.rbnele e então usar o comando no terminal, não no irb, então ele mostra a saída no irb.

Sreenivas
fonte
4
Mas ao carregar o arquivo, você pode acessar as variáveis ​​definidas lá. Útil ao solucionar problemas ou brincar com uma biblioteca.
Sonia Hamilton
@Sreenivas Isso era exatamente o que eu estava procurando. Obrigado!
Joshua Pinter