Pergunta
Como obtenho o diretório onde o rakefile.rb está localizado?
Quero usar isso como meu diretório raiz para localizar tudo.
Solução
usar __FILE__
Para obter o nome do arquivo, você pode obter o diretório a partir daí:
dentro test.rb
puts __FILE__
resultado:
/users/foo/test.rb
__FILE__
resolve o caminho completo do arquivo em que está.
Use isso para obter o nome do DIR:
File.dirname(__FILE__)
Outras dicas
Você pode obtê -lo ligando Application.original_dir método. Na tarefa, você pode alcançar inscrição objeto usando inscrição método no objeto de tarefas.
Por que não usar apenas Dir.pwd
?
Se este é um aplicativo ROR, seu RakeFile.RB deve estar no seu diretório Rails_Root. Portanto, em qualquer script, você pode especificar o local do arquivo como
config.load_paths += %W( #{RAILS_ROOT}/extras )
A partir do Ruby 2 você pode usar __dir__
em vez de File.dirname(__FILE__)
para obter o diretório que contém o script atual.