Eu sou um iniciante absoluto em Ruby. Criei um pequeno arquivo ruby e ele funciona bem quando executo o comando ruby "methods.rb"
. Isso significa que estou no diretório correto.
Mas quando inicio o irb e executo o comando require "methods.rb"
, Recebo a seguinte resposta:
LoadError: cannot load such file -- methods.rb
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require"
from /usr/local/rvm/rubies/ruby-1.9.3-p392/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:53:in `require"
from (irb):1
from /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb:16:in `<main>"
Respostas:
10 para resposta № 1Ruby não adiciona o caminho atual ao caminho de carregamento por padrão.
No irb, você pode tentar require "./methods.rb"
em vez de.
1 para resposta № 2
Eu tenho um arquivo ruby chamado so.rb
no diretório /home/kirti/Ruby
. Então, primeiro no IRB, eu mudaria meu diretório de trabalho atual usando Dir#chdir
método. Então eu ligaria #load
ou #require
método. Minhas so.rb
arquivo contém apenas p hello
linha.
Eu iria desta maneira:
>> Dir.pwd
=> "/home/kirti"
>> Dir.chdir("/home/kirti/Ruby")
=> 0
>> Dir.pwd
=> "/home/kirti/Ruby"
>> load "so.rb"
"hello"
=> true
>> require "./so.rb"
"hello"
=> true
1 para resposta № 3
Para adicionar o diretório do qual você está executando o script ruby ao caminho de carregamento, use:
$LOAD_PATH.unshift( File.join( File.dirname(__FILE__), "" ) )
ou se você colocou suas dependências em "subdir" do diretório atual:
$LOAD_PATH.unshift( File.join( File.dirname(__FILE__), "subdir" ) )
1 para resposta № 4
Se você deseja carregar coisas no IRB que estão no diretório atual, você pode:
irb -I.
Observe o "ponto" lá, indicando o diretório atual.
Se você estiver explorando e fazendo alterações nesse arquivo, enquanto estiver no IRB, use load
ao invés de `require
Como load
permite carregar suas alterações e require
permitirá que o arquivo seja necessário apenas uma vez. Isso significa que você não precisará sair do IRB para ver como suas alterações estão sendo afetadas.
Para descobrir quais opções você tem para o IRB, você pode fazer irb --help
o que é bom de fazer se você estiver aprendendo a ferramenta.