Pregunta
¿Cómo obtengo el directorio donde se encuentra rakefile.rb?
Quiero usar esto como mi directorio raíz para localizar todo.
Solución
use __FILE__
para obtener el nombre del archivo y luego puede obtener el directorio desde allí:
en test.rb
puts __FILE__
salida:
/users/foo/test.rb
__FILE__
se resuelve en la ruta completa del archivo en el que se encuentra.
Use esto para obtener el nombre del directorio:
File.dirname(__FILE__)
Otros consejos
Puede obtenerlo llamando al método application.original_dir . En la tarea, puede lograr el objeto aplicación utilizando el método aplicación en el objeto de tarea.
¿Por qué no solo usar Dir.pwd
?
Si se trata de una aplicación RoR, su Rakefile.rb debería estar en su directorio RAILS_ROOT. Entonces, en cualquier script, puede especificar la ubicación del archivo como
config.load_paths += %W( #{RAILS_ROOT}/extras )
A partir de Ruby 2, puede usar __dir__
en lugar de File.dirname (__ FILE__)
para obtener el directorio que contiene el script actual.